static 的特点:(它可以修饰成员变量,还可以成员方法)
A:随着类的加载而加载
B:优先于对象存在
C:被类的所有对象共享(即 如果某个成员变量是被所有对象共享 的 ,那么他就应定义为静态的)
D:可以通过类名调用
也可以通过对象名调用 推荐使用类名调用
静态修饰的内容 一般我们称其为,与类相关的 类成员
static关键字的注意事项:
在静态方法中没有this关键字的:
(静态是随着类的加载而加载,this是随着对象的创建而存在, 静态比对象先存在。)
静态方法只能访问 静态的成员变量 和 静态的成员方法(静态方法 不能引用非静态变量)
静态方法:
成员变量:只能访问静态变量
成员方法:只能访问静态成员方法
非静态方法:
成员变量:可以访问静态的也可以访问非静态的
成员方法:可以访问静态的成员方法 也可以访问非静态的成员方法
**即:静态只能访问静态**
静态变量和成员变量的区别:
A: 所属不同
:静态变量属于类,所以也成为类变量
:成员变量属于对象,所以也称为实例变量(对象变量)、
B: 内存中的 位置不同
:静态变量存储于方法区的静态区
:成员变量存储于堆内存
C: 内存出现的时间不同
:静态变量随着类的加载而加载,随着类的消失而消失
:成员变量随着对象的创建而存在,随着对象的消失而消失
D: 调用的不同
:静态变量可以通过类名调用,也可以通过对象调用
:成员变量只能通过类名调用