第八章 面向对象编程 主要内容介绍:
C#入门经典(第5版)第八章 面向对象编程简介
什么是面向对象编程
OOP技术
Windows Forms 应用程序对OOP的依赖关系
本章要点
主题 |
重要概念 |
对象和类 |
对象是OOP应用程序的组成部件。类是用于实例化对象的类型定义。 对象可以包含数据,提供其他代码可以使用的操作。 数据可以通过属性供外部代码使用,操作可以通过方法供外部代码使用。 属性和方法都称为类成员。 属性可以进行读取访问、写入访问或读写访问。类成员可以是公共的或私有的 。在.NET中,所有的东西都是对象 |
对象的生存周期 |
对象通过调用它的一个构造函数来实例化。不再需要对象时,就执行其析构函数,以删除它。 要清理对象,常常需要手工删除它 |
静态和实例成员 | 实例成员只能在嘞人对象实例上使用,静态成员只能直接通过类定义使用,它不与实例关联 |
接口 |
借口是可以在类 上实现的公共属性和方法的集合。 可以给实例类型的变量赋予其类定义实现国该接口的任意对象的值 之后通过该变量,可以使用该接口定义的成员 |
继承 |
继承就是一个类定义派生于另一个类定义的机制。 类从其父类中继承成员,每个类都只能有一个父类。 子类不能访问父类的私有成员,但可以定义受保护的成员,受保护的成员只能在该类和派生于该类的子类中使用 子类可以重写父类中定义为虚拟的成员。 所有的类都有一个以System.Object结尾的继承链 |
多态性 | 从词汇表派生类 中实例化的所有对象都可以看作是其父类的实例 |
对象关系和特性 |
对象可以包含其他对象,也可以表示其他对象的集合。 要在表达式中处理对象,常常需要通过运算符重载,定义运算符如何处理对象 对象可以提供事件,事件因某种内部处理而被触发,客户代码可以提供事件处理程序,来响应时间 |
什么是面向对象编程
使用OOP技术,常常要使用许多代码模块,每个模块都提供特定的功能,每个模块独立,这种模块化编程方法提供了非常大的多样性,增加了重用代码的机会。
OOP技术以结构、数据的含义以及数据和数据之间的交互操作为基础
对象的含义
对象就是OOP应用程序的一个组件,这个组件封装了部分应用程序(可以是过程、数据或更抽象的实体)。
“类”与“对象”是完全不同的概念:类的实例是一个对象,可以说类是泛指对象是特指
1.属性和字段
可以通过属性和字段访问对象中包含的数据,都可以键入,但是,属性和字段不同点在于属性不提供对数据的直接访问。
把字段设置为私有,通过公共属性访问他们,这样,类中的代码就可以直接访问存储在字段的数据,而公共属性禁止外部用户访问这些数据,以防在其中放置无效的内容,公共成员是类可以访问的成员。
2.方法
用于表示对象中的函数
对象的生命周期
正在使用:
构造阶段:对象最初就行实例化的时期
析构阶段:删除对象时,需要执行一些清理工作
1.构造函数
构造函数用于初始化数据的函数。
构造函数与字段、属性、方法一样,可以是公共或私有的。
2.析构函数
.NET Framework 使用析构函数清理对象
静态和实例类成员
属性、方法、字段等成员是对象实例所特有的,
1.静态构造函数
一个类只能有一个静态构造函数,该构造函数 不能有访问修饰符,也不能带任何参数。
静态构造函数调用:
创建包含静态构造函数的类实例时,
访问包含静态构造函数的类的静态成员时
在这两种情况下,会先调用静态构造函数,之后实例化类或访问静态成员
2.静态类
静态类只能包含静态成员,不需要实例构造函数。
OOP技术
接口
接口是把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。
接口不能单独存在,
一个类可以支持多个接口 ,多个类 衣可以支持相同的接口。