我想初始化一个类,同时我想使用类变量。
像这样:
Myclass name = new Myclass(new AnotherClass(name));
它说:局部变量名称可能尚未初始化。
所以我的问题是,是否有办法让 AnotherClass 知道 MyClass 的所有功能。
我想初始化一个类,同时我想使用类变量。
像这样:
Myclass name = new Myclass(new AnotherClass(name));
它说:局部变量名称可能尚未初始化。
所以我的问题是,是否有办法让 AnotherClass 知道 MyClass 的所有功能。
您不能让两个对象相互要求来构造它们。这不仅行不通,而且设计不佳。
如果您真的需要这样的东西,请自行创建对象:
Myclass name = new Myclass();
然后,当您创建 AnotherClass 时将其传递给 MyClass 并让它保存对它的引用。
name.setAnohterClass(new AnotherClass(name));
更好的设计是减少耦合,让一个类知道另一个类。例如:
Myclass name = new Myclass();
AnotherClass another = new AnotherClass(name);
如果您想让其他类只知道函数(而不是对象状态),您可以使用带有默认构造函数的其他对象来实现:
Myclass tmpObject = new Myclass();
Myclass name = new Myclass(new AnotherClass(tmpObject));
但我也建议审查AnotherClass
。这不清楚你想使用什么功能,可能你可以使用它们static
,所以你不应该将它们传递给Myclass
对象。
尝试
Myclass name = new Myclass(new AnotherClass(new Myclass()));
问题是您正在尝试name
从源对象name
本身初始化对象。这是不可能的,你现在知道了。
如果你想实现,你可以按照上面的方法来做。