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