public class MultipleObjects2Test {
static int a;
static int b;
MultipleObjects2Test(int a,int b){
this.a=a;
this.b=b;}
public static void main(String[] args) {
MultipleObjects2Test test = new MultipleObjects2Test(5,10);
MultipleObjects2Test test1 = new MultipleObjects2Test(15,20);
System.out.print(test.a);
System.out.print(test.b);
System.out.print(test1.a);
System.out.print(test1.b);
}
}
我认为,输出分别为5,10,15,20。但代码为15 20 15 20。
有人可以解释原因吗?
答案 0 :(得分:2)
您的成员是静态的:
static int a;
static int b;
因此,两个实例对a
和b
具有相同的值。
删除static
关键字,您将获得预期的输出。
public class MultipleObjects2Test
{
int a;
int b;
MultipleObjects2Test(int a,int b)
{
this.a=a;
this.b=b;
}
public static void main(String[] args)
{
MultipleObjects2Test test = new MultipleObjects2Test(5,10);
MultipleObjects2Test test1 = new MultipleObjects2Test(15,20);
System.out.print(test.a);
System.out.print(test.b);
System.out.print(test1.a);
System.out.print(test1.b);
}
}
答案 1 :(得分:0)