.NET基础第八、九天


一、面向过程--------> 面向对象
面向过程:面向的是完成这件事的过程,强调的是完成这件事的动作
如果我们用面向过程的思想来解决这件事,当执行这件事的人不同的时候,我们需要为每个不同的人量身定做解决事情的方法
面向对象:找个对象帮你完成这件事,意在写出通用的代码,屏蔽差异
二、万物皆对象
我们在代码中描述一个对象,通过描述这个对象的属性和方法
我们把这些具有相同属性和相同方法的对象进行进一步封装,抽象出来类这个概念。
类就是个模子,确定了对象应该具有的属性和方法。
对象是根据类创建出来的。
类就是一个盖大楼的图纸,而对象就是盖出来的楼。
三、类
语法:
写好了一个类之后,我们需要创建这个类的对象,
那么,我们管创建这个类的对象的过程 称之为类的实例化
使用关键字 new
this:表示当前这个类的对象
类是不占内存的,而对象是占内存的‘
***结构和类的写法虽然非常相似,但是结构struct 不具备面向对象的特征(封装、继承、多态) 结构是面向过程的
而类具有面向对象的特征
四、属性
属性的作用就是保护字段,对字段的赋值和取值进行限定
属性的本质就是两个方法,一个叫get() 一个叫set()
get()取值 set()赋值
既有get()也要set() 我们称之为可读可写属性
只有get()没有set() 只读属性
只有set() 没有get() 只写属性(很少用到)
当我们创建好一个类的对象后,需要给这个对象的每个属性去赋值
我们管这个过程称之为对象的初始化
五、访问修饰符
public:公开的公共的 在哪都能访问
private:私有的,只有在当前类的内部才能进行访问,出了这个类就访问不到了
六、静态和非静态的区别
在非静态类中,既可以有实例成员(非静态成员),也可以有静态成员
在调用实例成员的时候,需要使用 对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:静态成员必须使用类名去调用,而实例成员使用对象名去调用
静态函数中, 只能访问静态成员,不允许访问实例成员
实例函数中,既可以使用静态成员,也可以使用实例成员
静态类中只允许有静态成员,不允许出现实例成员
七、使用
如果你想要把你的类当作一个”工具类“去使用,这个时候可以考虑将类写为静态的
静态类在整个项目中资源共享 只有在程序全部结束后,静态类才会释放资源
八、内存
堆 栈 静态存储区
释放资源 GC Garbage Collection
九、构造方法(函数)
构造方法用来创建对象,并且可以在构造函数中对对象进行初始化
作用:帮助我们初始化对象(给对象的每个属性依次赋值)
构造函数是一个特殊的方法:
1)构造函数没有返回值 连void也不能写
2)构造函数的名称必须和类名一致
3)构造函数可以有参数,new对象的时候传递函数参数即可
4)如果不指定构造函数,则类有一个默认的无参构造函数
5)如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写
创建对象的时候会执行构造函数
***
类中会有一个默认的无参数的构造函数,当你写了一个新的构造函数后,不管是有参数的,还是无参数的,那个默认无参数的都被干掉了
***
构造函数可以重载,也就是有多个参数不同的构造函数
十、关键字new、this
Person zsPerson=new Person();
new帮助我们做了三件事:
1)在内存中开辟一块空间
2)在开辟的空间中创建对象
3)调用对象的构造函数进行初始化对象
this关键字的作用
1)代表当前类的对象
2)在类中显式的调用本类的构造函数 语法 :this