static修饰符(可以修饰变量,方法,内部类)
1.静态方法
静态方法也叫类方法是直接归属于通过类可以直接调用的方法这一范畴的,它被分配在静态存储区,不占用类存储区这将导致
a.方法内不能使用this和super关键字
这是因为this和super的调用机制和静态方法有冲突,this是通过类的对象来调用的变量,super是通过类对象来调用父类的变量
b.不能被重写,不能实现多态
由于在静态存储区,是公共的,不能被重写,但可以被继承
c.不能直接调用非静态的成员变量和成员方法
非静态的成员变量和成员方法是属于对象的,只有对象被创建才会分配给它内存区域,它才存在,所以你在没有创建对象的时候是不能调用的。但是非静态方法可以调用是因为,既然非静态方法已经存在,则它的对象也已经存在了,则可以调用了。非静态方法的内存分配是在new()的时候创建的。
d.类的入口main()函数是可以调用的,方法是: 类名.main()
2.静态变量
静态变量是分配在静态存储区,你通过类名.变量名可以访问它但是不可以改变它,但是你可以在这个类里直接改变静态变量的值。非静态变量只能是通过对象被创建后被调用
3.内部类
内部类被static修饰表示可以被静态调用
final修饰符(可以修饰类,方法,变量,参数)
final表示最终,用来修饰类,表示不可以被继承,类的成员也都是默认加final的不能被改写和覆盖。用来修饰方法则表示不能被覆盖,用来修饰变量则不能被修改,用来修饰参数,则该方法只能读取不能,修改它。