博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#语言-04.OOP基础
阅读量:5094 次
发布时间:2019-06-13

本文共 3330 字,大约阅读时间需要 11 分钟。

a. OOP:面对对象思想          i. 类:是一种功能强大的数据类型,而且是面向对象的基础              1. 语法:访问修饰符 class 类名{ //类的主体 }              2. 成员变量:不以“函数”形式体现                  a. 常量:代表与类相关的常量值                  b. 变量:类中的变量                  c. 事件:由类产生的通知,用于说明发生了什么事件                  d. 类型:属于类的局部类型              3. 成员函数:以“函数”形式体现                  a. 方法:完成类中各种计算或功能的操作,不能和类同名、不能和类中其他成员同名                  b. 属性:定义类的值,并对它们提供读、写操作                  c. 索引指示器:允许编程人员在访问数组时,通过索引指示器访问类的多个实例,又称下标指示器                  d. 运算符:定义类对象能使用的操作符                  e. 构造函数:在类被实例化时首先执行的函数,主要是完成对象初始化操作,构造函数必须和类名相同                  f. 析构函数:在类被删除之前最后执行的函数,主要是完成对象结束时的收尾操作,必须和类名相同,并前加一个“~”波浪线符号          ii. 构造函数:是类中一种特殊的方法,特点是 它的方法名与类名相同、没有返回类型和主要完成初始化工作。              1. 隐式构造函数:默认的情况下,系统将会给类分配一个无参数的构造函数,并且没有方法体,但要注意一旦类有了构造函数,就不再自动分配构造函数了              2. 无参构造函数:实例化时不需要给类的属性赋值              3. 带参构造函数:实例化时需要给类的属性赋值,实例化时一定要使传入的参数和带参构造函数的参数列表相对应              4. 方法重载:是指在同一个类中,方法名相同,而参数类型和参数个数不同。在同一个类中,构造函数和变通方法都可以重载          iii. 封装:指利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能隐藏内部的细节,只保留一些对外接口,使之与外部发生联系,保存对象自身数据的完整性和安全性              1. 好处:                  a. 保证数据的安全性                  b. 提供清晰的对外接口                  c. 类内部实现可以任意修改,不影响其他类          iv. 继承:建立类之间的关系,实现代码的利用,方便系统的扩展,继承必须符合 is a 的关系,被继承的类称为父类或者基类,继承其他类的类称为子类或者派生类              1. 子类构造函数                  a. 隐式调用父类构造函数                      i. 创建子类对象时会首先调用父类的构造函数,然后才会调用子类本身的构造函数,由于没有指明要调用父类的哪一个构造函数,所有系统隐式地调用了父类的无参数构造函数                  b. 显式调用父类构造函数                      i. 通过 base 关键字调用父类的构造函数进行初始化                      ii. 注意:base 关键字调用父类的构造函数时,只能传递参数                      iii. 如果父类没有无参数的构造函数,那子类必须要使用 base 关键字来调用父类相应的构造函数,否则因为父类没有无参构造函数的原因而报错              2. 特性:                  a. 传递性:如果 A 继承 B 和 B 继承 C,则 A 也就继承了 C ,A可以访问 C 的成员                  b. 单根性:一个类不能够同时继承自多个父类              3. 特点:                  a. 继承模拟了现实世界的关系,OOP 中强调一切皆对象,这符合我们面向对象编程的思考方向                  b. 继承实现了代码的重用                  c. 继承使得程序结构清晰,子类和父类的层次结构清晰          v. 多态:相同的方法调用可实现不同的实现方式              1. 使用虚方法实现多态                  a. 创建父类变量,用子类对象实例化这个父类变量                  b. 把父类类型作为参数类型,它的子类对象作为参数传入              2. 里式替换原则:子类可以替换父类并且出现在父类能够出现的任何地方,且程序的行为不会发生变化,但是反过来,父类对象是不能替换子类对象的                  a. Is 关键字:用于检查对象和指定的类型是否兼容                  b. as 关键字:用于两个对象之间的类型转换              3. 抽象方法是一个没有实现的方法,通用在定义方法时增加关键字 abstract 可以声明抽象方法                  a. 语法:访问修饰符  abstract 返回类型  方法名();                      i. 注意:抽象方法没有闭合的大括号,而是直接跟了一个分号“;”,也就是说,它没有包括方法执行逻辑的方法体                  b. 与虚方法的区别                            虚方法                             抽象方法                    用 virtual 修饰                        用 abstract 修饰                    要用方法体,哪怕是一个分号     不允许有方法体                    可以被子类 override 必须被子类 override                    除了密封类外都可以写               只能在抽象类中写              4. 抽象类:含有抽象方法的类必然是抽象类                  a. 语法:访问修饰符  abstract class  类名;                  b. 抽象类不能被实例化                  c. 抽象类不能是密封或者静态的          i. 接口:接口继承允许将一个方法的名称和它的实现彻底的分离              1. 语法:[访问修饰符] interface  接口名[:父接口名列表]{  //接口体  }              2. 注意:                  a. 接口仅仅提供成员的声明,并不提供成员的实现                  b. 接口成员只能是方法、属性、索引指示器和事件,不能是常量、域、操作符、构造函数或析构函数,不能包含任何静态成员                  c. 接口成员声明不能包含任何修饰符,接口成员默认访问方式是public                  d. 接口类似于抽象基类,继承接口的任何非抽象类型都必须实现接口的所有成员                  e. 不能直接实例化接口

 

转载于:https://www.cnblogs.com/WesleyLiang/p/7533246.html

你可能感兴趣的文章
python--以1-31的数字作为结尾的列表?论英文好的重要性!
查看>>
解决Win7系统新建选项中无记事本问题
查看>>
nginx笔记---http配置
查看>>
升级到WP8必需知道的13个特性
查看>>
python学习笔记—— 多进程中的 孤儿进程和僵尸进程
查看>>
webapi ,前台json传入raw读取
查看>>
poj2481
查看>>
病毒侵袭(hdu2896,ac自动机)
查看>>
浏览器请求页面时Etag和cache的区别
查看>>
Java 基础知识面试题
查看>>
【Visual Installer】如何注册自已的文件类型
查看>>
关于跳出循环
查看>>
文件拓展名/HTML转义字符/RGB颜色参考/网页字体参考
查看>>
Android常用的UI布局
查看>>
科研呢喃3-论科研选题
查看>>
python (2) 之 pyc
查看>>
TextInputLayout setError() setErrorEnable()
查看>>
HDD&Memory&CPU调度机制(I/O硬件性能瓶颈)
查看>>
city
查看>>
Weex 相关文章收集
查看>>