JAVA static是什么?修饰符总结整理

对JAVA中修饰符的总结整理,尤其是static的理解,static总是忘记

其他修饰符修饰的变量有效范围如下:

  类内 package内 子类 其他package
private yes no no no
default yes yes no no
protected yes yes yes no
public yes yes yes yes
  修饰类 修饰成员 修饰局部变量
static 可以修饰内部类 yes  
final yes yes yes
abstract yes yes  
  1. 成员变量:类体中定义的变量,包括实例变量和静态变量
  2. 局部变量:类的方法体中定义的变量,有效范围是方法体的两个{}之间

static修饰的变量:静态变量或全局变量。有效范围可以跨类,甚至可以达到整个应用程序,可以直接以“类名.静态变量”的形式在其他类里使用。

Val1.class和Val3.class在一个package中,Val2.class在另一个package中

静态变量(static修饰的)变量是default

运行正常:

Val3.class在一个package里

运行也正常:

Val2.class报错,因为不在一个package里,把Val1.class里的静态变量time加上public修饰词,让别的package也可以访问,就运行正常了

Val1.class

Val2.class

输出

static表示不属于某个实例,属于类的,可以修饰成员,也可以修饰方法

比如定义人

class Person{

    static long totalNum;   //人类的总数,不属于具体的某个实例人,属于人类这个类的变量

}

理解了红字就会用static了

猜你喜欢

转载自blog.csdn.net/touziss/article/details/81865100