3.1 面向对象概念
3.2 类
3.3 方法
类是一种数据结构,包含数据成员(常量、变量、域等)、函数成员(方法、属性、事件、索引器、运算符、构造函数、析构函数等)和嵌套类型。
类实际上是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象。
3.2.1 类的概念
类是对象概念在面向对象编程语言中的反应,是相同对象的集合。
类描述了一系列在概念上有相同含义的对象,并为这些对象统一了编程语言上的属性和方法。
3.2.2 类的声明
类是使用class关键字来声明的
类修饰符 class 类名
{
}
常用的修饰符有:
new:仅允许在嵌套类声明时使用,表明类中隐藏了有基类中继承而来的、与基类中同名的成员。
public :不限制对该类的访问。
protected:只能从其所在的类和所在的子类进行访问。
internal: 只有其所在类才能访问。
private : 只用。net中应用程序或库才能访问。
sealed :密封类,不允许被继承。
abstract :抽象类,不允许建立类的实例。
3.2.3 类的成员
类的定义包括类头和类体两部分,其中class 关键字定义的类名就是类头,类体为大括号中的部分,在类体中主要定义类的成员,类的成员包括字段、属性、方法、构造函数、事件、索引器等。
1. 字段
字段就是常见的常量或变量,它是类的一个构成部分,它使得类和结构可以封装数据。
2. 枚举
枚举是值类型的字段,主要用于声明一组有相同性质的常量,使用枚举可以增强程序的可读性和可维护性。
枚举的声明:
enum 枚举名
{
list1=value1,
list2=value2,
}
主要点:
1.枚举明后无任何符号;
2.value后面用逗号。
3.value可以省略,省略号第一个枚举数的值为o ,后面的枚举数的值依次加1.
3. 属性
属性是对现实实体特征的抽象,提供对类或对象的访问。
属性主要是描述类或对象的状态信息,在类的实例中,属性值表示对象的状态值。
属性把读取和写入对象的某些特性与一些操作关联起来,使得属性可以像公共数据成员一样使用,其声明格式为:
修饰符 类型 属性名
{
get { reture ……;}
set { 字段=value;}
}
修饰符:指定属性的访问级别(作用域)。
类型:指定属性的类型,可以为任何预定义或自定义的数据类型。
属性名:一种标识符,命名规则和字段相同。首字母通常大写。
get访问器:相当于一个具有属性类型返回值的无参数方法。必须用reture语句来返回,并且所有reture语句都必须返回一个可隐式转换为属性类型的表达式。
set访问器:相当于一个具有单个属性类型值参数和void返回值的方法。隐式参数value为set访问器中变量赋值。
3.2.4 构造函数和析构函数
这两个函数为类中比较特殊的成员函数,主要用于对对象进行初始化和回收对象资源。
1.构造函数
构造函数是在创建给定类型的对象是执行的类方法,通常用于初始化新对象的数据成员,其名称与类的名称相同。
2.析构函数
析构函数是以类名加~来命名。.net具有垃圾回收功能,当某个类的实例被认为是不再有效,并符号析构条件时,.net垃圾回收功能会自动调用该类的析构函数,实现垃圾回收 。
3.2.5 对象的创建及使用
对象是有类抽象性 出来的,所有的问题都可以通过对象来处理,对象可以操作类的属性和方法解决相应问题。
1. 对象的创建
c#中,通过new来创建对象,类每实例化一个对象就调用一次构造函数来创建对象。
分两种方式:有参数和无参数创建。
2. 访问对象的属性和方法
当对象用new操作符创建后,可以使用“对象.类成员”来获取对象的属性和方法。
3. 对象的引用
格式为:类名 对象引用名称
4. 对象的销毁
c#中,当对象引用超过其作用范围或对象的值为null时,对象则由系统自动回收处理,释放占用的内存空间。
3.2.6 this关键字
在c#中,可以用this关键字来代表类对象的引用,this关键字被隐式用于引用对象的成员变量和方法。
this引用的就是本类的一个对象,在局部变量或方法参数覆盖成员变量时,用添加this关键字明确引用的是类成员还是局部变量或方法参数。
3.2.7 类与对象的关系
类是具有相同或相似结构、操作和约束规则的对象组成的集合,是一种抽象的数据类型。
对象是某一类的具体实例。
每一个类都是具有某些共同特征的对象的抽象。