C#面向对象概述
早期的程序实际上就是一连串对计算机下达的指令,例如求解第 N 大的质数,或联立计算若干个方程的解。
由于问题实际上都是数学问题,所以主要的矛盾在算法设计上,而变量通常都是简单的数据类型,例如整数和小数等。
随着时代的发展,计算机应用于各行各业中,而不再是研究所和科学家的专利。此时,就需要用程序来表示更多实际生活中的对象,例如一个订单、一件产品等。
这些对象千变万化,各不相同。但是,我们都可以将它抽象为一个拥有若干属性和方法的抽象自定义变量。
例如订单拥有属性创建时间、过期时间等,产品拥有属性产品名、产品等级、产品价格等。为了配合计算机描述这种抽象变量,面向对象程序设计(Object-oriented Programming, OOP)的语言提岀了类的概念。
类可以多次被实例化,实例化后的产物叫做对象,如下图所示。
实际生活中,例如“产品类型”被实例化就相当于制造了一个新产品。
前面已经提到过,类是一个可以包含 0 或者多个成员的类型,这些成员可以是常量、字段、属性、方法等。
通过引入类,面向对象语言可以更加准确的模拟实际社会生产生活的各种事件。
面向对象的三大特性是:
单词 capsule 有胶囊之意,encapsulation 即为“使成为胶囊”的意思。
通过方法的重写和隐藏,子类还可以修改父类的行为。继承是面向对象程序设计代码复用能力的一种体现。
对于相同的方法,不同类型的子类有着不同的实现。接口和抽象类都是多态的体现。
词根 morph 代表形状,前缀 poly 则为“多”的意思。
通常认为面向对象程序设计有如下的好处:
由于问题实际上都是数学问题,所以主要的矛盾在算法设计上,而变量通常都是简单的数据类型,例如整数和小数等。
随着时代的发展,计算机应用于各行各业中,而不再是研究所和科学家的专利。此时,就需要用程序来表示更多实际生活中的对象,例如一个订单、一件产品等。
这些对象千变万化,各不相同。但是,我们都可以将它抽象为一个拥有若干属性和方法的抽象自定义变量。
例如订单拥有属性创建时间、过期时间等,产品拥有属性产品名、产品等级、产品价格等。为了配合计算机描述这种抽象变量,面向对象程序设计(Object-oriented Programming, OOP)的语言提岀了类的概念。
类可以多次被实例化,实例化后的产物叫做对象,如下图所示。
实际生活中,例如“产品类型”被实例化就相当于制造了一个新产品。
前面已经提到过,类是一个可以包含 0 或者多个成员的类型,这些成员可以是常量、字段、属性、方法等。
通过引入类,面向对象语言可以更加准确的模拟实际社会生产生活的各种事件。
面向对象的三大特性是:
1) 封装 (encapsulation)
类可以将它的成员私有化,只暴露它认为应当暴露给外界的成员。通过私有化成员,外界不必了解这些成员的实现细节。单词 capsule 有胶囊之意,encapsulation 即为“使成为胶囊”的意思。
2) 继承 (inheritance)
子类可以继承父类,从而简单地自动实现父类所有的成员,并增加自己的成员。通过方法的重写和隐藏,子类还可以修改父类的行为。继承是面向对象程序设计代码复用能力的一种体现。
3) 多态 (polymorphism)
实际上是继承的一种特殊情况,此时,子类一定会复写父类的行为(通常父类没有提供代码)。对于相同的方法,不同类型的子类有着不同的实现。接口和抽象类都是多态的体现。
词根 morph 代表形状,前缀 poly 则为“多”的意思。
通常认为面向对象程序设计有如下的好处:
- 通过继承和多态,增强代码复用能力。
- 通过封装避免不合理的访问。
- 更容易入门。通过将实际生活中的实体进行类比,初学者很容易理解类的概念。
- 更简单地设计并维护程序,程序更加便于分析、设计、理解,扩展性更好。
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频