static:关键字,是一个修饰符,用于修饰成员(成员属性和成员方法)
(1)想要实现对象的共性数据共享。可以将这个数据进行静态修饰(也就是说用static修饰的成员是类特有属性)。
(2)被静态修饰的成员,可以直接被类名所调用。也就是说,静态的成员多了一种调用方式。类名.静态方式。
(3)静态随着类的加载而加载。而且优于对象存在。
(4)静态方法只能访问静态成员,不可以访问非静态成员。(这句话是针对同一环境下的,比如说,一个类有多个成员(属性、方法、字段),静态方法那么可以访问同类名下其他静态成员,如果访问非静态成员就不行),因为静态方法加载时,优先于对象存在,所以没有办法访问对象中的成员。
(5)静态方法中不能使用this,super关键字。因为this代表对象,而在静态时,可能没有对象,所以this无法使用。
(6)主方法是静态的
成员属性和静态变量的区别:
a)成员属性所属于对象,所以称为实例变量。
静态变量所属于类,所以称为类变量。
b)成员属性存在于堆内存中
静态变量存在于方法区中
c)成员属性随着对象的创建而存在,随着对象被收回而消失
静态变量随着类的加载而存在,随着类的消失而消失
e)成员属性只能被对象所调用
静态变量可以被对象调用,也可以被类名调用。
所以,成员属性可以称为对象的特殊数据,静态变量称为对象的共享数据。
final特点:
(1)这个关键字是一个修饰符,可以修饰类,方法,变量
(2)被final修饰的类是一个最终类,不可以被继承
(3)被final修饰的方法是一个最终方法,不可以被覆盖
(4)被final修饰的变量是一个常量,只能赋值一次