为了解决结构化程序设计的一些弊端,面向对象技术应运而生。它将数据和对数据的操作看做是一个不可分割的整体,力求实现将问题简单化处理。这样既符合人们的思维习惯,同时也有助于控制软件的复杂性,提高软件的开发效率,使其得到广泛的应运。目前已成为最流行的软件开发工具。

       本章要求:1.了解什么是类和对象。

                     2.掌握C#创建类。

                     3.灵活运用C#进行简单的面向对象开发。

        4.1什么是面向对象编程:我所理解的面向对象,比如我们有汽车这个类,我们就在汽车这个类下根据系统提供的函数对汽车进行操作,严格按照系统的规定,例如我们可以假设car.Color(red),car.Color(bule)为分别定义汽车的颜色为红色或者蓝色,car.Size(big),car.Size(small)为定义汽车的大小,我们只要学会使用这个简单的函数就可以,而不用么去关心背后复杂的函数。或者说我们一次性写好这个函数,日后在调用的时候就可以不用再去管过去我们的定义吧,有点像手机,我们会用就行,而不用管它是如何生产的。

       4.2事物的抽象集合--类:具有同一类性质或者特性的集合,比如我们可以把球定义为BALL,这样我们就可以定义ball.Basketball.bule或者是从这个类里面定义网球羽毛球,因为这些都有一样的性质,例如ball.Color,ball.Size...以及使用函数,ball.SetCOLOR(bule),ball.ChangeCOLOR(bule)等等函数,然而当我们关系他们的不同点就不可以把他们当成事同一个类,比如ball.BasketBall.科比签名的,对于ball下面的乒乓球他并没有这个属性或者说我们不研究这个属性,我们就可以把他们看成不同的类。

        4.3对类的声明:

             Class Car:                                                                   //定义汽车类

                  {

                     int wheels;                                                              //公邮成员,轮子数目

                     protected float weight;                                            //受保护的,重量

                     public Car ( int w, float g     )                                 //车这个类的构造函数

                     {   wheels=w;        weight=g;                       }

                    public void Info( )                                                     //这个类中的一个函数,通过调用使用

                   {

                       Console.WriteLine("我有{0}个车辆",wheels);

                       Console.WriteLine("我重{0}kg",weight);

                     }

                    public void Speak()                                                //这个类中的一个函数,通过调用使用

                    {

                        Console.WriteLine("我能够加速");

                      }

}

      在我看来类是一种类似于C语言结构体的东西,但是类的成员不仅仅是变量,还可以是函数。

      4.2.2类的成员和成员声明:

            上面我们定义了一个类,然后我们就可以对这个类进行操作,我们定义的Car1,Car2都具有Car的性质,都可以使用Car中的函数,相当于复制,只不过我们可以改变一些参量。

                     我们可以在程序的主函数中这样声明类:

                       class Program

                          {

                               static void Main(string []    args)

                               Car car=new Car(4,2000 );

                                car.Info();

                                car.Speak();

                                Console.Read()                             

                                 }

           

      我们可以这样理解上面这句话,我们从Car中复制出一辆car,并且一开始就定义了车辆和重量,其后我们就可以对这辆复制出来的车进行操作了,所有Car的操作对car同样适用,这样的话我们可以节省代码量,用我们的本体Car创造出无穷多具有同样性质的car.        

4.2.3类的成员访问

        类的访问是有权限的,编写时就定义了类的权限。它们有共有的(public),私有的(private),保护的(protected),内部的(internal)。下面举例说明:

        class train                                                        //定义火车类

        {

            public int num ;                                           //公有成员,表示火车厢数。

            privated int pass;                                          //公有成员,表示乘客数。

            privated float weight;                                    //私有成员,表示重量

            public void fn()

                  {

                        num=5;

                        weight=100;

                       }

         } 

        http://www.cnblogs.com/uniqueliu/archive/2011/07/11/2102903.html     //公有和私有的区别

4.2.4类的继承:

      比如我们有一个Car类,但是实际中我们直接用Car类不方便,我们需要一个轿车类,它有Car的性质但是又不完全相同,可以增加变量或者函数。

      举例:

                 class myCar:Car

                   {

                        int people;

                        pulic myCar(int w,float g,int p):base(w,g)

                          {

                              weight=g;

                              wheel=w;

                              people=p;

                              }

 

                 }

        可以认为myCar类继承自Car所以它可以使用Car的所有特性,并且它还有自己的特性people.