2011-12-19 87 views
0

快速的问题,我试图找到一个我自己满意的答案。爪哇这个参数

说我有2个类Object1和Object2。现在我想Object2的做用Object1的资源,所以我这样做

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

和Object1我这样做

new Object2(this); 

这是否给每个Object2Object1,还是它只是指向Object1为预期?

+2

请显示一个**完整的**代码片段。我不知道这里叫什么... – 2011-12-19 18:06:11

回答

1

它将按照预期指向Object1。这是因为Java将对象变量存储为“引用”(如果您喜欢用C语言来思考,则使用“指针”),并且当您通过值传递此引用时,您将为该函数提供对象引用..有关于此的一个很好的基本教程功能here。希望这可以帮助。

+0

非常感谢。我担心我会比预期的做更多的处理,这是个好消息。 – Jeremy 2011-12-20 13:15:28

1

它只是使用Object1的引用(点)。每当您在Object2课程中更改o课程时,您也将更改原始obj1对象。

0

你可以使用IS-A关系

对象2延伸Object1 {}

所以现在对象2可以使用对象2资源以及Object1资源。假设你想反之亦然,你可以使用HAS-A关系

Object1有对象2引用这样

Object1 {对象2 obj2的; }

Object2的具有Object1参考这样

Object2的{Object1 OBJ1; }