目录
静态方法
特点:1.生命周期一旦创建到应用结束才会结束;2.全局;3.效率高
用处:用户登录消息、系统配置信息、系统设置、SQLHelper
注意:静态的东西创建多了,占用内存会很大,不是必要情况不要创建静态的对象
调用:静态方法调用非静态方法,不能直接调用,把类初始化后再调用
构造方法
用处:1.初始化对象;2.或者初始化一些数据
特点:默认是一个无参构造方法,可有多个重载
析构方法
作用:释放对象
谁在使用:GC垃圾回收器在调用。
垃圾回收机制:
回收非托管资源---Windows窗口句柄、数据库链接、GDI对象、独占文件锁等等对象。
ApplicationContext,Brush,Component,ComponentDesigner,Container,Context,Cursor,
FileStream,Font,Icon,Image,Matrix,Object,OdbcDataReader,OleDBDataReader,Pen,
Regex,Socket,StreamWriter,Timer,Tooltip等。
1.--Dispose()需要实现IDisposable接口
2.--Close()和Dispose()区别。区别---Close()方法关闭对象,没有完全释放。Dispose()方法完全释放了。
3.--99%情况下不需要自己编写经典方法。
虚方法--virtual:(小蜜蜂)
作用:允许子类/派生类,进行重写,也实现不一样的功能。
特点:好维护。
抽写方法--override
重写的作用是在参数类型和个数、顺序一样的情况下,引用同一种方法来做不同的事情;
重载的作用是在参数类型和个数、顺序不一样的情况下,引用同一种方法来做不同的事情。
抽象方法--abstract:(大懒虫)
定义:一定要写在抽象类里,而且不能实例化,不带方法体。
使用场合:(强制性)一定要实现。
接口命名以I开头。
与接口区别:1.抽象类---单继承,接口可以多继承
2.抽象类里可以写普通方法、虚方法等,接口只能写规范,不能写实现。
与接口使用场合:抽象类一般常用于不会经常改动,然后抽象范围大一些的事物。比如人分为男 人、女人。
接口适用于经常修改,只是一个规范的地方。
实现多态的三种方法:虚方法,抽象类,接口。
扩展方法ExtendMethod
定义:在非泛型静态类中,定义静态方法---扩展方法
使用场合:1.调用密封类中的对象、属性、方法(扩展密封类){
第一步,先定义静态类和静态方法
第二步,在静态方法参数中用this指定需要扩展的类
}。
2.扩展接口。{
第一步,先定义静态类和静态方法
第二步,在静态方法参数中用this指定需要扩展的接口
}
3.在Linq链式编程。---后面讲
配合装饰器模式