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;
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 07:54:24
![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;](/uploads/image/z/3799088-8-8.jpg?t=java%E4%B8%AD%E7%B1%BB%E5%8F%98%E9%87%8F%E5%92%8C%E5%AE%9E%E4%BE%8B%E5%8F%98%E9%87%8F%E5%8C%BA%E5%88%AB%EF%BC%88%E6%95%B0%E5%80%BC%E7%9A%84%E6%94%B9%E5%8F%98%EF%BC%89public+class+A%7B++++++static+int+a+%3D+0%3B++++++int+b+%3D+0%3B%7D+public+class+B%7B++++++public+static+void+main%28String+%5B%5D+args%29%7B++++++++++++A+a1+%3D+new+A%28%29%3B++++++++++++A+a2+%3D+new+A%28%29%3B+++++++++++a1.a+%3D+3%3B)
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.