1.了解类和对象
从面向过程到面向对象面向过程过分强调人的存在,面向对象对每个人都一致(大象是对象)
- 面向对象:意在屏蔽差异,写出一个通用的过程
- 找对象:被动的是对象
- 对象:看得见摸得着的(特指)
- 类:把具有相同属性相同方法的对象进一步封装,抽象出类这个概念;
类包含{字段,变量,方法,构造函数};
类中的成员,如果不加访问修饰符,默认都是private的; - 注意:类不占内存,对象占内存
2.字段和属性
字段和属性- 字段可以存多个值,变量可以存一个值
- 字段前面必须加下划线(书写习惯)
- 属性和字段:
1)属性的作用就是保护字段,对字段的赋值和取值进行限定(在get或set里面作限定都可以)。属性的本质就是两个方法,一个叫get(),一个叫set()。
2)赋值时给属性赋值,不再给字段赋值(虽然是给属性赋值,实际上属性内部完成了给字段的赋值)
3)字段是方法内部的,一般是private的;属性是与外界交互的,一般是public的。属性要把字段“保护”起来,不能让外界随便的访问到字段。
//这种代码如何得知属性给了哪个字段呢?还是怎么解决的这个问题
public int FreeTiltDirection
{ get; set; }
3.static关键字
- 有static:
static修饰的静态方法,调用时(类名.方法名),main函数和要调用的方法在同一个类里面,在调用时可以省略类名 - 无static:此时要调用方法就不能让类名去.了,需要对象去.
- 静态和非静态的区别
1)在非静态类中,既可以有实例成员(非静态成员,需要new的),又可以有静态成员;
在静态类中,只可以有静态成员。
2)在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员;
3)静态函数中,只能访问静态成员,不允许访问实例成员。
实例方法中既可以使用静态成员也可以使用实例成员。
4)静态类是不可以实例化的,也不需要实例化(new) - 静态类和非静态类的使用
1)如果当前类你想要当作“工具类”去使用,考虑把他当作静态类
2)静态类在整个项目中资源共享 - 注意:
1)静态类是占内存的,内存中最常用的空间是(堆,栈,静态存储区域),静态存储区域就是用来存放静态类的值的。
2)只有在程序结束之后,静态类才会释放资源
4.其他涉及到的知识点
- 释放资源:c#引入了GC(garbage collection 垃圾回收器)
- this:表示当前这个类的对象
- 结构和类的区别:
结构是面向过程的,类是面向对象的。两个里面可以写的东西是一样的。但是结构不具备面向对象的封装继承多态的特征。 - 写了字段如
private int _age;
点击CTRL+R+E可以补充出相应的属性
网友评论