一、类与实例
对象是自包含的实体,用一组可识别的特性和行为来标识
类是具有相同的属性和功能的对象的抽象集合
实例化就是创建对象的过程
二、构造方法
构造方法又称构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new时候调用。
三、方法重载
方法重载提供创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
四、属性与修饰符
属性是一个方法或者一对方法,但在调用他的代码看来,它是一个字段,即属性适合以字段的方法使用的场合。
字段是存储类要满足其设计所需的数据,字段是与类相关的变量
Get访问器返回与声明的属性相同的数据类型,表示的意思是调用时可以得到内部字段的值或引用
Set访问器没有显式设置参数,用关键字value表示,它的作用是调用属性时可以给内部的字段或引用赋值
五、封装
每个对象都包含它能进行操作所需的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作
封装好处:
- 1)良好的封装可以减少耦合
- 2)类内部的实现可以自由地修改
- 3)类具有清晰的对外接口
六、继承
对象的继承代表一种‘is a’的关系,如果俩个对象a和b,可以描述为‘b是a’,则表明b是可以继承a
如果子类继承父类1)子类拥有父类非private的属性与功能;2)子类具有自己的属性和功能,即子类可以扩展父类没有的属性和功能3)子类还可以以自己的方法实现父类的功能(方法重写)
继承是有缺点的,父类变,子类不得不变,继承会破坏包装,父类实现细节暴露给子类。
继承显然是一种类与类之间强耦合的关系七、多态
使父类可使用不同子类的方法
1)子类以父类的身份出现
2)子类在工作中以自己的方式来实现
3)子类以父类的身份出现时,子类特有的属性方法不可使用
在父类前增加virtual,子类选择使用override,方法重写
多态的原理是当方法被调用时,无论对象是否被转换为其父类,都只有位于对象继承链最末端的方法实现会被调用。也就是说虚方法是按照其运行时类型而非编译时类型进行动态绑定调用的。八、重构
对父类virtual的重写九、抽象类
1)抽象类不能实例化
2)抽象方法必须被子类重写的方法
3)如果类中包含抽象方法,那么类必须定义为抽象类,无论是否包含其他一般方法。
抽象类拥有尽可能多的共同代码,拥有尽可能少的数据
抽象类,抽象方法加abstract十、接口 (interface)
接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦类实现了接口,类就可以支持接口所指定的所有属性和成员。
抽象类与接口区别:抽象类可以给出一些成员的实现,接口却不包含成员实现,抽象类的成员可被子类部分实现,接口成员需要类完全实现,一个类只能继承一个抽象类,但可以实现多个接口。
1)类是对对象的抽象;抽象类是对类的抽象;接口是对行为的抽象。十一、集合
可用IList或ArrayList声明变量名,IList animal=new ArrayList();
ArrayList是不安全的,接受所有元素Object
装箱:把值类型打包到Object引用类型中的一个实例
拆箱:指从对象中提取值类型
装箱与拆箱需要进行大量计算。十二、泛型
ArrayList animal=new List(); 十三、委托与事件
委托是对函数的封装,可以当作给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事件时,事件对象处理通知过程。
委托是一种引用方法的类型。一旦委托分配了方法,委托将与该方法具有相同的行为。
委托对象用delegate 事件用event