从对象所在的类创建对象

时间:2014-12-24 11:00:44

标签: java object static

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。

有人可以解释原因吗?

2 个答案:

答案 0 :(得分:2)

您的成员是静态的:

static int a;
static int b;

因此,两个实例对ab具有相同的值。

删除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)

ab被声明为静态,表示class variables,更改

static int a;static int b;

 int a; int b;