java中类变量和实例变量区别(数值的改变)public class A{ static int a = 0; int b = 0;} public class B{ public static void main(String [] args){ A a1 = new A(); A a2 = new A(); a1.a = 3;
java中类变量和实例变量区别(数值的改变)public class A{ static int a = 0; int b = 0;} public class B{ public static void main(String [] args){ A a1 = new A(); A a2 = new A(); a1.a = 3;
java中类变量和实例变量区别(数值的改变)
public class A{ static int a = 0; int b = 0;} public class B{ public static void main(String [] args){ A a1 = new A(); A a2 = new A(); a1.a = 3; a1.b = 4; System.out.println(a2.a); System.out.println(a2.b); }} 为什么:a2.a = 3 而 a2.b = 0(没有改变呢?)
java中类变量和实例变量区别(数值的改变)public class A{ static int a = 0; int b = 0;} public class B{ public static void main(String [] args){ A a1 = new A(); A a2 = new A(); a1.a = 3;
类变量(即静态变量)是全局变量,所有的实例(如你提到的a1、a2)共享的变量.如果你在一个实例中改变了其值,那么所有的实例的这个变量的都会改变,例如 a1.a=10,那么你打印a2.a的值时也是10.而实例变量是每个实例自己独有的变量,互不干扰.就像你上面提到的,如果a1.b=4,打印a2.b还是0,那就说明a2实例中的b还是默认赋值0,并没有赋值4.