1 面向对象编程思想
本章中的OOP(Object-Oriented Programming)实际上是.NET OOP,这里讲述的一些技术不能应用于其他OOP环境,也就是说在编写C#程序时,使用的是.NET特有OOP。
(1)什么是对象?
(2)什么是面向对象编程?
- 面向对象编程简称OOP技术,它是开发应用程序的新方法新技术,过去我们使用的都是面向过程编程,而面向过程编程导致的结果是所有的代码几乎都包含在几个代码块中(常常是一个代码块),使程序难以阅读和维护,如果我们后面对程序进行修改,常常牵一动百,使后面的开发和维护难以为继。而使用OOP技术,常常要使用许多代码模块,每个模块都只提供特定的功能,他们都是彼此独立的,这样就提高了代码的重用性,而且更加有利于程序的开发、维护和升级
- 面向对象编程的3个主要特性是封装、继承和多态。
(3)面向对象编程与面向过程编程有什么区别?
假定应用程序是一辆一流跑车。如果使用面向过程编程技术,这辆跑车将被视为是一个单元,想要改进该车,就必须替换整车,把它送回厂里,让汽车专家升级(重新设计制造)它。但如果使用OOP技术,就只需从厂商处购买新的引擎,自己按照说明替换旧引擎即可,而不必切割车体。
2 面向对象编程的主要特征
2.1封装
2.2继承
2.3多态
3 类、对象、方法、字段、属性
3.1 类
类是一种数据结构,是具有某些共同特征的对象的集合,可以把类看作是“理论上、抽象化”的对象,是对象的“模版”,用于描述具体的对象。
3.1.1类的定义
[修饰符] class 类名 [:基类]
{
……
}
3.1.2类的修饰符
访问修饰符 | 表示含义 |
无或internal | 类只能在当前项目中访问 |
public | 类可以在任何地方访问 |
abstract或internal abstract | 类只能在当前项目中访问,不能实例化,只能继承 |
public abstract | 类可以在任何地方访问,不能实例化,只能继承 |
sealed或internal sealed | 类只能在当前项目中访问,不能派生,只能实例化 |
public sealed | 类可以在任何地方访问,不能派生,只能实例化 |
其他修饰符 | 表示含义 |
static | 静态类,只包含静态成员,不能进行实例化 |
3.2 类的成员
3.2.1字段(变量):字段是在类或结构中声明的任何类型的变量,用于表示类的特征数据。
●如人:姓名、年龄、身高、体重
●动物:毛色、速度、腿的个数
●汽车:漆色、速度、发动机型号
(1)字段的声明(与变量的声明相同)
[修饰符] 数据类型 字段名;
(2)字段的访问
对象.字段
(3)
3.2.2属性:
3.2.3方法:用于表示类的行为。
●如人:吃饭、睡觉、走路、干活
●动物:攻击、御敌、觅食、生殖●汽车:启动、停止、前进、后退
3.2.4类成员的修饰符
访问修饰符 | 表示含义 |
无或private | 只能在所属类中访问 |
public | 访问不受限 |
internal | 只能在所属项目中访问 |
protected | 只能在所属类或由其派生而来的类中访问 |
protected internal | 只能在所属项目或从所属类派生而来的类中访问; 警告:C#未提供此概念,其实际效果要么是protected,要么是internal |
其他修饰符 | 表示含义 |
static | 静态成员,也称共享成员,可以在类的实例之间共享,故可以将它们看作是类的全局对象。 |
3.3对象
3.3.1对象的概念
对象是类的实例。以汽车为例,类是指汽车的模板,或者用于构建汽车的规划,而汽车是这些规划的实例,所以可以看作对象。以屌丝为例,屌丝是指又穷又矮又多挫折的苦B青年,可将其归为类的概念,而屌丝中的张三李四王五则是屌丝的具体实例,故可将他们看作是对象。
3.3.2类与对象的区别与联系
从概念上就不难看出它们的区别与联系
类(对象的集合) | 对象(类的实体) |
人 | 男人、女人、高人、矮人 |
动物 | 猪、狗、猫 |
汽车 | 奔驰、宝马、奥迪、大众 |