在java中,静态变量和方法是独立于一般的变量和方法的。对于同属该类的实例对象,以及该类本身,均使用同一个静态变量/方法。当我们改变该类或该类的任意一个实例对象的静态变量,所有同属于该类的对象以及该类本身的静态变量都发生改变。
class Animal{
static int size;
public static void run(){
System.out.println("Animal is running");
System.out.println(size);
}
}
public class TestOfStatic{
public static void main(String[] arys){
Animal animal = new Animal();
Animal animal1 = new Animal();
//Animal.size=100;
//animal.size=100;
//animal1.size=100;
Animal.run();
animal.run();
animal.run();
}
}
在该文件中,若以上三行被注释的代码都不执行,当我们执行该文件时会产生以下输出:
Animal is running
0
Animal is running
0
Animal is running
0
而当上述(被注释掉的三行中)任意一行或多行代码被执行,都会出现以下输出:
Animal is running
100
Animal is running
100
Animal is running
100