1.什么是面向对象编程,我们为什么要去使用面向对象编程?
大一我学习了java面向对象编程的课程,类比到C#面向对象编程,都是为了让数据更加的清晰。把编写的程序中的功能进行模块化的划分,在未来要进行修改和排查错误是更加的明了。简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。
一.首先是从什么是类开始认识:
1.C#是一种面向对象的编程语言,C#中的一切都与类和对象以及其包含的属性和方法有关。类实际上是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法。
2.要创建一个类,需要使用class关键字:例如
Class Cup
{
String color="blue”
}
类中的数据和函数称为类的成员
类的成员包括数据成员和函数成员:
数据成员和成员函数都是属于对象的,使用关键字static可以创建一个类成员。
数据成员:数据成员是包含类的数据--字段,常量和事件的成员。
函数成员:函数成员提供了操作类中数据的某些功能。
实例:class Cup{
Public String color;
Public String name;
Public String buyTime;
Public void Show(){
Console.WriteLine(“颜色:”+color);
Console.WriteLine(“商品名:”+name);
Console.WriteLine(“购买时间:”+buyTime);
}
}
Cup是类,包含了name,color,buyTime 3个字段,包含了一个输出信息的方法show(),而Console.WriteLine 方法是一个将指定的数据(后跟当前行终止符)写入标准输出流,在实例中是将cup的商品属性输出打印。
用类创建对象,也就是实例化(new一个对象)
cupName cup=new cupName();
三.堆、栈和静态存储区
程序内存区域:堆 栈 静态存储区
程序所有的数据,也就是所有的变量,都是存储在内存中的。
栈空间比较小,但是读取速度快
堆空间比较大,但是读取速度慢
可以类比商场和仓库
- 栈:栈遵从后进先出原则,数据只能从栈的顶端删除和插入
- 堆:堆是一块内存区域,与栈不同,堆里的内存能够以任意顺序存入和移除
- GC Garbage Collector垃圾回收器:CLR的GC就是内存管理机制,这里我自我理解是相当于写好程序,设定时间的扫地机器人,会定期的扫描,把不用的空间清理,再放入新的数据。
四.this和base关键字
This关键字可以访问当前类中定义的字段,属性和方法,当方法的参数跟字段重名的时候,使用this可以表明访问的是类中的字段。
base关键字可以调用父类中的公有方法和字段,加上base关键字软件会给出提示,把所有可以调用的字段和方法罗列出来方便选择。
五.修饰符
public:公有的,程序中都可以访问该类型或成员。
private: 私有的,只有同类或结构中的代码可以访问该类型或成员。
protected:保护的,只有同类或结构或者此类的派类中的代码才可以访问该类型或成员。
Abstract:使用abstract修饰的类为抽象类,不能与sealed、static一起使用。
Static:使用static修饰的类为静态类,静态类所有成员都必须是静态的,不能与abstract、sealed一起使用。
Readonly:使用readonly关键字来声明只读字段。
六.调试和错误处理
1.错误:在编写过程中难免会有Bug的存在,一般有语法错误和逻辑错误这两种。
2.调试:
正常模式下的调试:使用Console.Write(或者WriteLine)方法向控制台输出变量的值,通过这个我们可以查看变量的值是否符合我们的预期来调试错误。
中断(Debug)模式下的调试:暂停程序的执行,然后查看程序中的状态。通过断点让程序中断(在需要添加断点的行首位置,直接单击,再次单击取消断点)
然后单步执行代码:
在中断模式下我们可以单步执行代码,单步执行带有有两种逐过程和逐语句,他们两个
都是一条语句一跳语句的执行,区别在于
逐过程遇到函数,不会进入函数内部,而把函数当成一条语句去行⾏。
异常:
异常是在执行期间代码中产生的错误。
异常处理(捕捉异常) 用try ... catch ... finally 语句
try块包含了可能出现异常的代码(一条或者多条语句),catch块用来捕捉异常,finally块包含了始终会执行的代码,不管有没有异常产生都会执行
try{
}
catch( <exceptionType> e ){
}
finally{
}