使用新Statement将值传递给Constructor

时间:2014-12-24 00:13:57

标签: java object new-operator

public class MultipleObjects {
    int a;
    int b;

    MultipleObjects(int a,int b) {
        this.a=a;
        this.b=b;
    }

    MultipleObjects(MultipleObjects g) {
        a=g.a;
        b=g.b;
    }

    static MultipleObjects display(/*MultipleObjects o1,MultipleObjects o2*/) {
        MultipleObjects temp = new MultipleObjects(new MultipleObjects(2,3));
        return temp;
    }
}

我在另一个中使用了两个新语句。外部新语句的括号中有什么东西?价值或对象。如果是对象,怎么样?有人能详细解释一下吗?

1 个答案:

答案 0 :(得分:2)

首先,您使用构造函数创建了一个新的MultipleObjects,它将int, int作为参数,然后调用另一个构造函数(AKA复制构造函数),将新传递的对象传递给它。 你的代码

MultipleObjects temp = new MultipleObjects(new MultipleObjects(2,3));

相当于

MultipleObjects foo = new MultipleObjects(2,3);
MultipleObjects temp = new MultipleObjects(foo);