类的定义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类、命名空间的定义与使用

1.类

1.1类的声明及其修饰符

类(class)是最基础的C#类型。类是一个数据结构,将状态(字段)和操作(方法和其他函数成员)组合在一个单元中。

class Car//定义Car类class是保留字,表示定义一个类,Car 是类名 {

public string model;

public void Run()

{

Console.WriteLine("{0}跑起来!!", model);

}

}

类的声明格式如下:

类修饰符class 类名

{

类体

}

其中,关键字class、类名和类体是必须的,其它项是可选项。

类修饰符包括new、public、protected、internal、private、abstract 和sealed。类体用于定义类的成员。

下面介绍几个常用的类的修饰符。

(1)new:仅允许在嵌套类声明时使用,表明类中隐藏了由基类中继承而来的、与基类中同名的成员。

(2)public:表示不限制对该类的访问。

(3)protected:表示只能从其所在类和所在类的子类进行访问。

(4)internal:只有其所在类才能访问。

(5)private:只有.NET中的应用程序或库才能访问。

(6)abstract:抽象类,不允许建立类的实例。

(7)sealed:密封类,不允许被继承。

类的成员可以分为两大类:类本身所声明的以及从基类中继承来的。

类的成员包括以下类型:

字段:即类中的变量或常量,包括静态字段、实例字段、常量和只读字段。

方法:包括静态方法和实例方法。

属性:按属性指定的get方法和Set方法对字段进行读写。属性本质上是方法。

事件:代表事件本身,同时联系事件和事件处理函数。

索引指示器:允许象使用数组那样访问类中的数据成员。

操作符重载:采用重载操作符的方法定义类中特有的操作。

构造函数和析构函数。

1.2 对象

对象是类的实例,是OOP应用程序的一个组成部件。这个组成部件封装了部分应用程序,这部分应用程序可以是一个过程、一些数据

或一些更抽象的实体。

对象包含变量成员和函数类型。它所包含的变量组成了存储在对象中的数据,其中包含的方法可以具有访问对象的功能。复杂的对象可以不包含任何数据,只包含方法,表示一个过程。

在C#中和.NET Framework中的所有类型都是对象。变量类型是一个类,变量也是一个对象。

下面的代码实现了访问Car类的对象和对象数据状态:

public class Car

{

public int number;

public string color;

private string _brand;

public Car()

{

}

public string brand

{

get

{

return _brand;

}

set

{

_brand = value;

}

}

}

下面代码在一个方法中实例化类对象并设置和访问数据状态:private void button2_Click(object sender, EventArgs e)

{

string pa;

Car c = new Car();

c.brand = "奔驰";

c.color = "黑色";

pa = c.brand;

}

1.3 字段、属性、方法

类的字段准确地说应该是类的数据成员,其定义是:用于存储类和类的实例相关数据的变量。

方法就是类的函数成员,是一个为实现类的某一个特定功能的函数。因此也称为类的方法。

属性是一个代表类的实例或类中的一个数据项的函数成员。从定义可以看出,属性是类的一个函数成员或者说是方法。对类的属性的设定和获取可以用两个访问器set和get来实现。

字段,方法和属性的定义的区别如下示例:

class MyClass //定义类MyClass

{

//数据成员或者字段的定义

public int aa= 10;

private int bb;

//属性的定义

public int MyValue

{

set //设定属性

{

bb= value;

}

get //从属性获取值

{

return bb;

}

}

//方法的定义

public void SetValue()

{

}

}

从概念上可以区分字段和属性的区别,字段是一个用于存储数据的变量,属性是一个方法或者说是一个函数成员。

1.4 构造函数和析构函数

构造函数和析构函数是类中比较特殊的两种成员函数,主要用来对对象进行初始化和回收对象资源。一般来说,对象的生命周期是从构造函数开始,以析构函数结束。如果一个类含有构造函数,在实例化该类的对象时就会调用构造函数;如果含有析构函数则会在销毁对

象时调用它。构造函数的名字和类名相同。析构函数和构造函数的名字相同,但析构函数要在名字前加一个波浪号(~)。当推出含有该对象的成员时,析构函数将自动释放这个对象所占用的内存空间。

每个类都有构造函数,在访问一个类的方法、属性或任何其他东西之前,首先执行的语句应是与类相应的构造函数。即使没有声明它,编译器也会自动构造一系列的构造函数。构造函数不声明返回类型,而且一般都是public类型,如果是private表明该类不能被实例化,这通常只用于静态成员的类。

析构函数是以类名加“~”来命名的。.NET系统有垃圾回收功能,当某个类的实例被认为不再有效,并符合析构条件时,.NET的垃圾回收功能就会调用该类的析构函数。

下面的代码实现了Car类析构函数的声明:

public class Car

{

public int number;

public string color;

private string _brand;

public Car()//构造函数

{

}

public~Car()//析构函数

{

}

public string brand

{

get

{

return _brand;

}

set

{

相关文档
最新文档