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。
谁能解释一下为什么吗?
最佳答案
您的成员是静态的:
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);
}
}
关于java - 从对象所在的类创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27635816/