日期:2014-05-17  浏览次数:20710 次

C#类的认识

        

C#是由类组成的。在接下来的讲解中我讲通过类将C#面向对象编程基础串一遍。

我把类分为三种:抽象类、接口、实体类

抽象类

对于一个类当我们使用关键字abstract的时候,这个类就是抽象类。

抽象类和抽象方法存在的意义?

      为了能够实现基类和派生类对方法Print的多态行为,通常情况下我们需要首先,在基类Person将Print方法声明为虚方法,然后在多层派生类中,运用覆载重写Print方法,得到Student和GraduateStudent的属于自己的Print方法。这样就可以实现多态行为。而实际情况是,有的时候,我们没有必要在基类Person中也定义Print方法的具体实现过程,我们并不关心或使用到基类Person的Print方法,不需要基类的Print方法为我们提供任何服务,在这种情况下,编写基类Person的Print方法的具体实现过程,就会显得毫无意义和浪费时间,我们要使用的仅仅只是派生类Student或GraduateStudent的Print方法,并能够实现Print方法的多态行为。这个时候,多态就派上用场了,我们只需将基类的Print方法声明为抽象方法,只提供方法头,而不必编写方法体的具体实现内容。

接口

接口可以看成是一种特殊的类。从程度上看,接口要比抽象类更为抽象,而抽象类则比具体类来得抽象。

特点:

  1. 类实现接口;
  2. 接口中不包含任何代码,有的只是契约;
  3. 类不能够多重继承,而接口可以实现多重继承;

在接口的实现中,如果有不同命名空间的两个相同名字的接口需要我们实现,该如果实现呢。

实体类

下面通过实体类来说明一下类的内脏器官。

创建类和对象

类的声明

[属性集信息] [类修饰符] class 类名 [:基类]

{

[类成员]        //包括类的属性和方法

}

 

类的实例化(创建对象)

类名 对象名= new 类名();

构造函数和析构函数

构造函数和析构函数没有返回类型。

构造函数

当我们定义一个一个类之后,就可以通过new运算符将其实例化,产生一个对象。为了能够规范安全的使用这个对象,C#提供了实现对象进行初始化的方法,这就是构造函数。

语法形式:

[访问修饰符] <类名>([参数列表])

{

//构造函数的主体

}

如果要写一个带参数的构造函数,一点要写一个空的构造函数(不带参数的构造函数),否则会出错。

一个学生类的举例

class student
   {
       internal string studentNo,studentName, studentSex;
       internal int studentAge;
       public student()    //一个静态构造函数,不带参数

       {
         //对student类的四个属性赋予初始值
           studentNo = "10001";
           studentName ="小王";
           studentSex ="男";
           studentAge = 19;
       }

       //带参数的构造函数
       public   student(string no,string name,string sex,int age)
       {
           studentNo = no;
           studentName = name;
           studentSex = sex;
           studentAge = age;
       }
   }

 

 

析构函数

一般来说,创建一个对象时需要用构造函数初始化数据,与相对应释放一个对象时就用析构函数。所以析构函数是用于实现析构类实例所需操作的方法。

语法形式:

~    <类名>()