一、类与实例
对象:一个自包含的实体,用一组可识别的特性和行为来标识。
面向对象编程(Object—Oriented Programming)
类 :具有相同属性和功能的对象的抽象的集合。类名称首字母和各单词首字母要大写。
二、构造方法
构造方法:又叫构造函数。其实对类进行初始化。构造方法与类同名,无返回值,也不需要Void,在new时调用。
所有的类都有构造方法,比如:Cat cat=new Cat();中,new后面的Cat()就是默认为空的构造方法。
三、重载
方法重载的参数类型和个数必须有所不同。优点:在不改变原来方法的基础上,新增功能。
四、属性
属性是一个方法或一对方法,但在调用它的代码看来,它是一个字段,即属性适合于以字段的方式使用方法调用的场合。
字段是私有的,属性公有的变量。
属性的两个方法:
get——返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用。(读)
set——有一个隐式参数,Value表示。调用属性时可以给内部的字段或引用赋值。(写)
五、封装与继承
封装好处:减少耦合、类内部自由修改、类具有清晰的对外接口
对象的继承“is-a"的关系
子类继承与父类的三句话
——子类拥有父类非private的属性和功能
——子类可以扩展属性、功能
——方法重写(以自己的方式实现父类的功能)
六、多态
不同 的对象可以 执行相同的动作,但要通过自己的代码执行。
代码实现:父类必须将该成员声明为虚拟的(virtual),然后子类使用 重写(override).索引器、事件、属性都是可以重写的。字段不可以重写。
七、抽象(abstract)类
抽象类需要注意三点:
——抽象类不能实例化,比如动物new动物。没有意义
——抽象方法是必须被子类重写的方法。
——如果类中含有抽象方法,类必须定义为抽象类。
八、接口(interface)
接口是把隐式公共方法和属性组合起来,为了封装一个特定功能的一个集合。接口不能实例化,不能有修饰符、不能有构造方法、字段。
接口中的方法或属性没有修饰符、方法没有方法体。
Interface与abstract类区别:对行为的抽象、对类的抽象。
九、集合、泛型
集合:ArrayLIst是命名空间system.collections下的一部分。声明可以使用IList接口,也可以直接声明。
泛型:LIst<string> 需要System.collections.Generic的命名空间。声明可以 使用IList接口,也可以直接声明。
十、委托与事件
委托是一种引用方法的类型。一旦委托分配了方法,委托与方法有相同的行为。事件是用来 通知消息的。
比如猫和老鼠。只要猫一叫,老鼠立刻跑。
//public delegate void CatShoutEventHandler(object sender,CatShoutEventArgs args);//声明委托
//public event CatShoutEventHandler CatShout;//声明事件
cat.CatShout += new Cat.CatShoutEventHandler(mouse1.Run);
cat.CatShout += new Cat.CatShoutEventHandler(mouse2.Run);