(类变量)静态变量和实例变量的区别?

时间:2022-08-31 04:53:52

(1)语法定义上的区别

静态变量用static修饰

实例变量没有static修饰

(2)运行区别,实例区别

静态变量在类中,不属于实例对象,属于类所有,只要程序加载了字节码,不用创建实例对象静态变量就会被分配空间,已经可以使用。

实例变量是某个对象的属性,只有实例化对象后,才会被分配空间,才能使用。

类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;
而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象;


例子如下:

public class SE004_LeiBianLiangAndShiLiBianLiang {
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
}

}

class Demo{
static int i = 1; //类变量(静态变量)
int j = 1; //实例变量
public Demo(){
i++;
j++;
System.out.println(i+":"+j);
}
}

运行结果

2:2
3:2

分析:静态变量共同类所有,值改变后,在之后的实例对象中也改变!!!!

实例变量属于当前对象所有!!!!