【资料整理】面向对象
面向对象:
1.面向对象其实就是思考问题的一种方式
面向对象不是替代面向过程的,是基于面向过程的;由执行者变为指挥者
好处:便于维护和修改
2.对象
具体存在的个体;看得见摸得着,真实存在的
3.类
定义类的方法:class 类名{}
类其实就是一种数据类型,只不过这个数据类型不是微软设定的;
具有相同属性和行为的对象的抽象的集合;
定义在类里面的都叫做类的成员;
4.属性是对象具有的各种特征
属性的本质是1个set方法和1个get方法;
get方法时负责返回封装的字段的值;
set方法就是负责封装的字段赋值,定义的参数是value;
对字段的封装 可以控制对字段的赋值和取值,之前做一些逻辑上的处理
命名规则 首字母大写
如果只写get不写set代表这个属性是只读的
属性的名字不一定要与被封装的字段名字一样,属性首字母大写是为了方便阅读,一眼就看到是对哪个字段进行封装;
C#里面尽量所有的字段都封装为属性;
如果属性没有对字段做任何逻辑上的判断,那么字段可以省略定义;(C#编译器自动为属性生成一个字段来被这个属性封装< 字段名>k _BackingField)
如果要控制只读只写 简写的方式不可用 简写需要(1.没有逻辑上的更改 2.支持只读只写操作)
快捷键:Ctrl+R+E
自动属性快捷键 prop
自动属性:如果对读取操作没有任何逻辑上的判断和操作 可以直接写成自动属性public int Age(get;set;)
5 方法是一种行为、动作,执行的操作
6.命名空间
命名空间可以重名,如果重名表示这些命名下面的类都是属于同一个命名空间用于解决类重名问题,可以看做类的“文件夹”;
注:当想调用的类处于不同的命名空间时,可以通过两种方法访问:
一是通过全名称.类名来访问
二是通过using添加该类所在的命名空间
在同一个命名空间下不能定义两个相同名字的类;
程序集就是一个“硬盘” 那么程序集里的命名空间就是硬盘的“文件夹” 类就是文件夹的文件