使用正在初始化的类的变量名

时间:2013-10-18 11:53:28

标签: java class variables initialization

我想初始化一个类,在这样做时我想使用classvariable。

像这样:

Myclass name = new Myclass(new AnotherClass(name));

它说:本地变量名称可能尚未初始化 所以我的问题是,是否有办法让AnotherClass知道MyClass的所有函数。

3 个答案:

答案 0 :(得分:5)

您不能让两个对象相互要求构建它们。这不会起作用,这不仅是糟糕的设计。

如果你真的需要这样的东西,可以单独创建对象:

Myclass name = new Myclass();

然后当你创建AnotherClass时,将它传递给MyClass并让它保存对它的引用。

name.setAnohterClass(new AnotherClass(name));


更好的设计是减少耦合,只让一个人知道另一个。例如:

Myclass name = new Myclass();
AnotherClass another = new AnotherClass(name);

答案 1 :(得分:1)

如果你想让其他类只知道函数(不是对象状态),你可以使用带有deault构造函数的其他对象来实现它:

Myclass tmpObject = new Myclass();
Myclass name = new Myclass(new AnotherClass(tmpObject));

但我也建议您查看AnotherClass。目前尚不清楚您要使用哪种功能,可能您可以使用它们static,因此您不应将它们传递给Myclass对象。

答案 2 :(得分:1)

尝试

Myclass name = new Myclass(new AnotherClass(new Myclass()));

问题是您正在尝试从源对象name本身初始化对象name。这是不可能的,你现在就知道了。

如果你想实现,你可以按照上面的方式去做。