2011-12-19 2 views
0

Быстрый вопрос, я попытался найти удовлетворительный ответ самостоятельно.Java этот параметр

Скажем, у меня есть 2 класса Object1 и Object2. Теперь я хочу Object2 сделать использование ресурсов Object1, чтобы я это сделать

Object1 obj1; 
    public Object2(Object1 o){ 
     obj1 = o; 
    } 

и Object1 я делаю это

new Object2(this); 

ли дать это каждый Object2 в Object1, или же он просто указывает на Object1 как ожидается?

+2

Просьба показать ** полный ** код-фрагмент. Я понятия не имею, что здесь называется ... –

ответ

1

Он укажет на Object1, как и ожидалось. Это связано с тем, что Java хранит переменные объекта как «ссылки» («указатели», если вам нравится думать в C), и когда вы передаете эту ссылку по значению, вы даете функции ссылку на объекты. Существует хороший базовый учебник по этому вопросу функциональность here. Надеюсь это поможет.

+0

Большое спасибо. Я был обеспокоен тем, что буду делать больше обработки, чем ожидалось, это хорошая новость. – Jeremy

1

Он просто использует ссылку (точки) для объекта 1. Всякий раз, когда вы меняете o в классе Object2, вы также будете менять оригинал obj1.

0

вы можете использовать IS-A отношения

Object2 расширяет Object1 {}

так что теперь Object2 может использовать ресурсы Объект2, а также Object1 ресурсы. предположим, что вы хотите, наоборот, вы можете использовать HAS-A отношения

Object1 имеет Объект2 ссылку как этот

Object1 {Object2 obj2; }

Объект2 имеет Object1 ссылку как этот

Object2 {Object1 obj1; }

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