基本上,我需要知道为什么以下代码不正确。如何告诉Java使用方法将传入的对象作为构造函数的参数?再次道歉,感谢阅读!
public ClassOne(ClassTwo twoObject){
}
public boolean OneMethod(){
twoObject.MethodName(); // twoObject cannot be resolved.
}
答案 0 :(得分:2)
您需要在此类的实例中存储对twoObject
本地的引用,以便在构造函数范围之外访问它。现在,构造函数使用传递的项执行,什么都不做,twoObject
的实例从这个类中消失,用于所有实际目的。
答案 1 :(得分:2)
您在其他方法中使用本地对象它不起作用,您可以创建一个全局对象来保存它然后使用它...
public class classOne{
Classtwo object;
public ClassOne(ClassTwo twoObject){
object = twoObject;
}
public boolean OneMethod(){
object.MethodName();
}
}
希望它可以帮助你:)
答案 2 :(得分:0)
代码不正确,因为调用其方法“MethodName”时“twoObject”不在范围内。 如果在构造函数中使用它,它在范围内,但不在方法“OneMethod”的范围内。 要使用它,您可以创建一个类变量并将其分配给构造函数中的“twoOject”。 然后,您可以在整个班级中使用它。
public ClassOne {
private ClassTwo twoObject; // instance variable
public ClassOne(ClassTwo twoObject){
this.twoObject=twoObject;
}
public boolean OneMethod(){
twoObject.MethodName(); // twoObject is now a class memeber and hence in scope and hence will be resolved
return true; //could also be false, just adding a return statement as the return type is boolean
}
}