Java中static之静态变量、静态方法、静态内部类

在这几天的Java入门学习中、接触到了关于静态方法、类、变量 static

刚开始的时候学的很模糊,一直记不清静态类、静态方法、静态变量的使用规则

现在有一点自己的看法,想写出来记录一下

首先

对于被static修饰的成员理解:

Java 中被 static 修饰的成员称为静态成员或类成员。它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。静态成员可以使用类名直接访问,也可以使用对象名进行访问

其次

就像一个封闭的盒子,static修饰的变量,即静态变量。属于该静态变量所在类,任何静态方法要调用该变量,则需要用类来调用。即,类名.变量名; 

《Java中static之静态变量、静态方法、静态内部类》

在普通成员方法中,则可以直接访问同类的非静态变量和静态变量

《Java中static之静态变量、静态方法、静态内部类》

对于静态方法,则可以直接调用同类中的静态成员,但不能直接调用非静态成员。

《Java中static之静态变量、静态方法、静态内部类》

在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量

 《Java中static之静态变量、静态方法、静态内部类》 

静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问

创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();

《Java中static之静态变量、静态方法、静态内部类》

最后

总而言之,在同一个类下,静态成员可以直接访问同类下的静态成员,不能直接访问非静态成员,而静态成员是该类所共有的,非静态成员可以直接调用静态成员。

静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收!

 

参考:

静态变量

静态方法

静态内部类
 

点赞