C#(一)——面向对象

253 阅读1分钟

一、什么是面向对象?

面向对象:意在写出一个通用代码,屏蔽差异,只需调用封装好的接口就能完成上层代码的编写,实现数据与逻辑分离。


二、面向对象三大特点

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:参数个数不定

推荐的学习资料

视频: