小结一下关于静态类的重要知识点:
1、调用静态方法的时候只能通过类名直接来调用,不能通过对象来调用。也就是说静态成员不需要实例化对象。
2、静态成员在整个程序推出时才才释放资源,所以可以在整个应用程序中用到静态成员,它相当于在共享数据。
3、静态类的构造函数,只会在第一次使用静态类之前调用执行,并且只会执行一次。
4、当给一个普通类添加静态字段后,系统会默认为该类生成一个静态构造函数。【静态构造函数不能有访问修饰符,并且不能够带参数】
5、静态类不能被实例化,并且不能被继承。
6、由于静态成员在整个程序推出时才释放资源,所以尽量避免写静态字段,一般只写静态方法。
7、静态类和普通类中的静态成员
(1)静态类:一般都用作工具类,里面都是一些工具函数例如Math,Console,都是静态类。 静态类中只包括静态成员。
(2)普通类中的静态成员:只能通过类名来访问,多个对象共享一个静态成员。静态方法中只能访问静态成员。
什么时候用静态类?
答:一般情况下,当这个类是一个工具类,里面都是方法,为了让用户调用的时候方便,不需要实例化对象,可将此类直接标记为static的类,该类中只能包含静态成员,不能包含实例成员。
什么情况下只需在一个普通类中编写一个静态成员,而这个类不能标记为static?
答:当这个类需要实例化的时候或者用到多态的时候(多态是必须能被继承的,而静态类是不能够被继承的)。这时如果类中的一个成员是所有对象共享的数据,这时候可以将该类中的这个成员标记为静态的,但是该类还是一个实例类。
8、静态方法或者静态变量创建后始终使用同一块内存(静态存储区),而使用实例方式则会创建多个内存。
9、静态类的继承问题:
静态类不能被其他类继承。
静态类不能继承自其他类,只能继承自Object类。
静态类不能使用多态(本身就不能被继承)
sealed:密封类,不能被继承 或 禁止子类重写父类的方法。
10、静态类的本质:abstract+sealde
(1)abstract:不能被实例化
(2)sealed: 不能被继承。
|
|