壮志凌云,脚踏实地。
改变,坚持。

面向对象基础

类:

具有相同的属性和功能的对象的集合

对象:

自包含的实体,由一组可识别的特性和行为来标识。

构造方法:

对类进行初始化,无返回值, 与类同名,可重载

重载函数:

同一类中,对函数的重写,就是在不改变原来方法的基础上,增加其功能,参数类型或个数必须不同。

属性:

属性其实可以被看成是一对方法,一个方法设置其值(即在调用属性时设置其内部的字段或引用的值),一个方法读取他的值(调用时可以得到其内部字段的值或引用)。但是对于调用它的代码来看,他是一个字段。

字段:字段存储类要满足其设计所需要的数据。

继承(三点)

子类拥有父类非Private 的属性和功能;

子类具有自己的属性和功能;

子类可以以自己的方式实现父类的功能,主要是重写父类的某些功能,注意其与重载函数的区别

多态(对父类函数的重新实现):

多态多是用在继承之间,子类以自己的方式实现父类的功能,即不同的子类可以拥有相同的操作,但各个子类要通过他们自己的代码来实现。这个父类函数主要是指父类中的抽象方法或者虚方法。

重构:对原有代码进行优化

抽象类与接口类的区别

抽象类:

抽象类不能被实例化,其中的抽象方法必须被重写(这一点是与父类中的虚方法不同的地方,需方法不一定非要重写),抽象方法必须且只能在抽象类中。类可以实现多个接口,但是只能继承一个抽象类。

抽象类应拥有尽可能多的共同代码,拥有尽可能少的数据。

接口:

某种同一行为的抽象。将隐式公共方法和属性组合起来,以封装特定功能(主要是行为,比如说通信)的一个集合。实现接口的类必须实现接口里面全部的行为和属性。

区别一:抽象类是对类的抽象,接口是对行为的抽象,也就是说接口是对类的局部行为的抽象,抽象类是对相似类对象的抽象。

区别二:接口中行为可以跨越不同的对象,即使是不同类的对象,而抽象类中的行为基本是各个子类都会有的。

区别三:抽象类是有底自上的,从对象向上抽象;而接口是预先定义的,可以不知道对象的存在,至于方法如何实现以后再说

泛型:

类型安全的,(有待补充),适合大型工程,因为他是强类型的。

委托和事件(有待补充):

委托实际上是一种方法类型,对函数的封装。可以将符合该类型的方法分配在委托上,使得方法类型安全,一旦方法分配在委托上,委托就具有与分配在其上的方法完全相同的功能。

事件是一种特殊的委托,事件是委托类型,一般是在发生其他类或对象关注的事情时,类或对象可以通过事件通知他们。

委托是一种特殊的类型,委托类型的变量用来接收签名(定义委托时对函数的要求(所谓要求,也就是参数类型和数量,返回类型)叫签名)和委托类型变量相同的函数,包括实例函数和静态函数,并且可以接收签名相同的多个函数,这也叫多播委托。

事件其实和多播委托相类似,只是多播委托可以在事件源外部触发,如在客户端触发;而事件只能在事件源触发。事件的用法就是类似于多播委托的用法。而事件实质就是一种比较特殊的委托类型变量。

例如在Form中的使用:

对函数

private void button1_Click(object sender, EventArgs e)
{

}
在初始化时将该方法注册在事件Click中:
this.button1.Click += new System.EventHandler(this.button1_Click);
可以看到EventHandler就是一个委托:
public delegate void EventHandler(object sender, EventArgs e);

,而事件Click就是一个委托类型的变量:

public event EventHandler Click;

具体步骤就是:

1、定义一个委托

public delegate void EventHandler(object sender, EventArgs e);
接收签名与此相同的函数

2、将方法this.button1_Click注册在上面的委托变量(new System.EventHandler(this.button1_Click))中,

3、定义一个委托类型的事件

public event EventHandler Click;
4、将委托变量new System.EventHandler(this.button1_Click)注册在委托类型相同的事件上。
posted on 2011-03-22 20:51  woxf  阅读(384)  评论(0编辑  收藏  举报