2014-12-24 3 views
2
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; 
    } 
} 

Я использовал два новых утверждения один в другом. Что это в скобках внешнего нового оператора? значение или объект. Если объект, как? Может кто-нибудь объяснить это подробно?Передача значения конструктору с помощью нового отчета

+2

создается экземпляр 'MultipleObjects' с помощью' (интермедиат, Int) 'конструктор, а затем передать его в конструктор копирования. – August

ответ

2

Сначала вы создали новый объект MultipleObjects, который использует int, int в качестве параметров, затем вы вызываете другой конструктор (конструктор копирования AKA), передавая ему вновь созданный объект. Ваш код

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

эквивалентно

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

спасибо за пример. Ваш пример объясняет, что ı хотел точно понять. –

+0

@ FurkanAktaş вы всегда можете выдвинуть, если найдете ответ полезным :) – sol4me

+0

Иногда, забывайте о повышении –

Смежные вопросы