文章目录
- 1.调试和错误处理
- 2. 断点
- 3.什么是面向对象编程?
- 4.构造函数
- 5. 接口
- 6.This、base关键字
- 7.字段、属性、方法
- 8.方法的重载
- 9.对象的创建和使用
1.调试和错误处理
错误 (Bug):
变量名写错,导致编译器无法编译(语法错误),逻辑在某些方面有瑕疵,也会产生错误。这类错误称为语义错误(逻辑错误)
在程序出错之后。使用VS提供给我们的调试功能,找到错误的原因修改代码。(调试)
C语言中的错误处理技术,对可能发生错误的地方采取预防措施,并编写弹性代码来处理可能会发生的致命错误。(错误处理)
正常模式下的调试:指的是不会影响程序的正常运行。
1,.在VS中我们使用Console.Write(或者writeLine)方法向控制台输出变量的值,通过这个我们可以查看变量的值是否符合我们的预期来调试错误。
2.断点
断点是什么?
代码是源代码中自动进入中断模式的一个标记,当遇到断点的时候,程序会自动进入中断模式。
如何插入断点?
1,右击代码行,选择breakpoint (断点)-〉Insert breakpoint(插入断点)
2,光标定位到代码行,选择菜单上的Debug(调试)-〉Toggle breakpoint(切断断点)
3,光标定位到代码行,按下F9键,在此按下F9是取消断点
4,在需要添加断点的行首位置,直接单击,再次单击取消断点
单步执行代码:
在中断模式下我们可以单步执行代码,单步执行带有有两种 逐过程和逐语句,他们两个都是一条语句一跳语句的执行,区别在于逐过程遇到函数,不会进入函数内部,而把函数当成一条语句去执行。
错误处理(异常处理)
3.什么是面向对象编程?
为什么使用面向对象编程?
为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且
每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机会。
面向对象编程也叫做OOP编程
简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。
类创建的变量叫做对象,
类是什么东西?
类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。
类定义了类的每个对象(称为实例)可以包含什么数据和功能
类的定义
宇段的声明
访问修饰符 类型 字段名称;
方法的声明
访问修饰符 返回值类型 方法名称(参数)
定义一个类来表示一个顾客
4.构造函数
我们构造对象的时候,对象的初始化过程是自动完成的,但是在初始化对象的过程中有的时候需要做一些额外的工作,例如需要初始化对象存储的数据,构造函数就是用于初始化数据的函数
声明基本的函数构造函数的语法就是声明一个和所在类同名的方法,但是该方法没有返回类型。
public class Myclass{
public Myclass (){
这个构造函数的函数体
}
}
程序内存区域:堆 栈 静态存储区
程序所有的数据,也就是所有的变量,都是存储在内存中的。
栈空间比较小,但是读取速度快。
栈空间比较大,但是读取速度慢。
栈的特征
数据只能从栈的顶端插入和删除
把数据放入栈顶称为入栈 (push)
从栈顶刪除数据称为出栈 (pop)
内存中的栈,是由系统管理 (.Net框架)
在数据结构中学习写一个自己的栈结构,保存数据
实例try{}、catch{}、Finnally{}
try——可能出现错误的代码
catch——出现异常后的执行的代码
Finnally——无论如何都会执行的代码
5.接口
接口:用于定义一组抽象操作的集合,通常为一些抽象的方法和属性——更加抽象的东西
子接口也可以继承父接口的所有属性——也可以使用new修饰符屏蔽父类元素
一个类只能继承一个类,但是可以"实现"多个接口
注意:
- 接口的方法都是默认为public,类在实现接口的方法的时候也需要用public
- 不会实现任何东西,没有字段,只有属性和方法
- 没有构造函数、析构函数
6.This、base关键字
this——当前的对象
base——指向基类
base的作在派生类中实现对基类成员的访问——base.age
调用基类中已被其他方法重写的方法——base.method
创建派生类实例时调用基类构造方法——(xx):base(xx)
注意点可以引用父类的字段、属性等等,但是不能访问父类修饰符为private的字段等。
this的作用
限定被相似名称隐藏的成员
将对象作为参数传到其他的方法
声明索引器
注意点:this 不能引用静态变量
在static方法中,不能使用this关键字
7.字段、属性、方法
字段:表示事物的性质,例如age、name等等
属性:指定执行和声明对相关成员的读/写
方法:类所具有的方法,对内部变量的操作,小括号是方法的标志
构造方法和析构方法
构造方法:是一种特殊的方法、与类同名的方法,专门用于创建对象——初始化(
可以有一个或者多个构造方法
方法名与类名相同
没有返回值
可以带着参数
具有修饰符,如果是private,则用于单例设计模式
不能直接调用,必须通过new运算符
析构方法:释放对象所用到的方法——看后门/推土机没有返回值也没有修饰符
不带参数
与类同名
需要~作为开头
不能显式调用
最多就一个析构函数
8.方法的重载
可以对普通方法、构造方法的重载
两同两不同:1.相同的类名
2.相同的方法名
1.不同的参数类型
2.不同的参数个数
注意点:
int类型可以去找double类型进行重载,因为int转换成double不会丢失数据——向上查找(不丢失信息)
也被称为静态多态,编译器根据签名的不同而进行不同的操作
方法重载的返回类型可以不一样
9.对象的创建和使用
先声明 再对其实例化 使用
注意点
对象是引用类型,所以不同的对象(在同一个类声明出来的)也会存在不同的地址上(完全独立)
只能通过对象变量进行访问
修饰符
访问控制符
分为public、protected internal、protected、internal、private
基于逻辑——protected表示子类可以访问
基于物理——internal表示同一个程序集可以访问
public 无限制访问
protected internal 同一个程序集或子类可以访问
protected 同类及其子类可以访问
internal 同一个程序集可以访问,但是非子类的也还是不可以的
private 仅在同类里可以访问