一、什么是面向对象?
面向对象:意在写出一个通用代码,屏蔽差异,只需调用封装好的接口就能完成上层代码的编写,实现数据与逻辑分离。
二、面向对象三大特点
1、封装
- 类:模子,确定对象的特征(属性)和行为(方法),是对象的类型。
- 字段:private,所以需要属性作为“门”来与外界交流(类内使用)。
- 属性:限定字段的赋值和取值(调用类时使用)。
- 构造函数:帮助初始化对象(创建对象时赋值)的一种方法。
- 成员
- 静态成员:类名.成员名 (不用创建实例对象)
- 实例成员:对象名.成员名 (用类new一个对象,调用对象)
2、继承
子类继承父类的所有成员(包括私有成员),但无法访问 私有成员。
3、多态
-
重载(重写)--- 多态 --- 委托
graph LR
A(重载/写) ---> A1[不同参]
B(多态) ---> B1[不同类同参]
graph LR
B(多态) ---> B1[不同对象一件事不同做法]
C(委托) ---> C1[不同方法参数做不同事]
-
多态的几种实现形式
- 虚方法:有内容覆写
- 抽象类:无内容覆写
- 接口:可继承多个、必须实现(限定成员)
三、C#的其他要点
-
修饰符
public(给别人用的) private(自己用的,不支持外部调用) internal partial
-
数据类型
graph TD
A(数据类型) --- A1[枚举]
A(数据类型) --- A2[数组] ----> A21[相同类型+个数确定]
A(数据类型) --- A3[结构] ----> A31[不同类型]
A(数据类型) --- A4[方法]
A(数据类型) --- A5[集合]
A(数据类型) --- A6[泛型]
A5[集合] --- A51[栈]
A5[集合] --- A52[队列]
A5[集合] --- A53[列表] ---> A531[个数任意]
A5[集合] --- A54[哈希表]
A5[集合] --- A55[有序列表]
style A fill:#d3d5f3
style A21 fill:#f0e4f3
style A31 fill:#f0e4f3
style A531 fill:#f0e4f3
-
函数
- out:返回多个
- ref:参数返回
- params:参数个数不定
推荐的学习资料
视频: