结构和类

结构

1.结构是一种值的类型,通常用来封装一组相关变量,结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等。当如果要同时包括上述几种成员,则应该考虑使用类。

结构修饰符 struct 结构名

{

}

结构具有以下特点:

a).结构是值的类型;

b).向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的;

c).结构实例化可以不使用new运算符;

d).结构可以声明构造函数,但它们必须带参数;

e).一个结构不能从另一个结构或类继承。所有结构都直接继承自System.ValueType,后者继承自System.Object

f).结构可以实现接口;

g).在结构中初始化实例字段是错误的;

2.结构的使用

结构常用于较小的数据类型。

public struct Rect

{

         public double width;

         public double height;

         public rect(double x,double y)

         {

                   width = x;

                   height = y;

         }

         public double Area()

         {

                   return width * height;

}

}

Static void main(string[] args)

{

         Rect rect = new Rect(6, 4);

         Console.WriteLine(“矩形面积为:” + rect.Area());

}

 

1.类是一种数据结构,它可以包含数据成员(常量和域)、函数成员(方法、属性、索引器、运算符、构造函数和析构函数)和嵌套类型。类支持继承,继承是一种使子类(派生类)可以对基类进行拓展和专有化的机制。

面向对象编程方式具有封装、继承和多态性等特点。

2.类的声明

类修饰符 class 类名

{

}

常用类修饰符:

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

b).public:不限制对该类的访问。

c).protected:只能从其所在类和所在类的子类(派生类)进行访问。

d).internal:只有.NET中的应用程序或库才能访问。

e).private:只有其所在类才能访问。

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

e).sealed:密封类,不允许被继承。

3.构造函数和析构函数

主要用来对对象进行初始化和回收对象资源。一般来说,对象的声明周期从构造函数开始,以析构函数结束。构造函数的名字和类的名字相同,析构函数和构造函数名字相同,但析构函数要在名字前加一个波浪号(~)。当退出含有该对象的成员时,析构函数将自动释放这个对象所占有的内存空间。

注:一个类中只能有一个析构函数,并且无法调用析构函数,它是自动调用的。

4.对象的声明和实例化

class A

{

}

class B

{

static void Main(string[] args)

{

                  A a = new A();

}

}

 

类的面向对象特性

1.类的封装

封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口这一特定的访问权限来使用类的成员。

2.类的继承

C#中一次只允许继承一个类,不能同时继承多个类。

利用继承机制,用户可以通过增加、修改或替换类中的方法对这个类进行扩充,以适应不同的应用要求。

继承类时,需要使用冒号加类型。当对一个类应用sealed修饰符时,该修饰符会阻止其他类从该类继承。

3.类的多态

多态使子类(派生类)的实例可以直接赋予基类的变量(这里不需要强制类型转换),然后直接就可以通过这个变量调用子类(派生类)的方法。

注:

a).virtual修饰符不能与privatestaticabstract或者override修饰符同时使用。

b).override修饰符不能与newstatic或者virtual修饰符同时使用,并且重写方法只能用于重写基类的虚方法。

c).C#中,继承、虚方法与重写方法组合在一起才能实现多态性。

 

 

 

C#从入门到精通》读后总结

 

posted @ 2016-03-15 22:05  我不是大佬  阅读(268)  评论(0编辑  收藏  举报