我对Java中的对象有点新意,我很感激一些帮助。我希望我能解释一下我的情况。我有一个类,我称之为GUI4EX,来处理程序GUI。在这个类中,我还有创建GUI4EX实例的主方法:
GUI4EX frame = new GUI4EX();
也是类CustomHandler的一个实例,但这不是在main方法中完成的:
CustomHandler customHandler = new CustomHandler();
从GUI4EX里面的代码我调用customHandler中的方法,如下所示:CustomHandler.getSomeValue()。如果我想从CustomHandler类中获取GUI4EX中的方法怎么样?这可能,我该怎么办?希望我的问题不清楚!谢谢!
答案 0 :(得分:1)
您必须了解面向对象编程的一个重要方面:方法属于对象。当您知道要调用其方法的对象时,您只能调用方法。
在您的示例中,CustomHandler
必须知道要在其上调用方法的特定GUI4EX
对象。一种可能性是在构造函数中添加一个参数:
class CustomHandler {
private GUI4EX frame;
public CustomHandler(GUI4EX theFrame) {
frame = theFrame;
}
}
然后,您可以访问字段frame
以调用GUI方法。
但请注意,您将创建一个循环关系。这意味着两个类 - CustomHandler
和GUI4EX
都相互依赖。这可能会导致问题并导致代码设计错误。如果可以,请尝试避免这种依赖。
*还有静态方法,但使用频率较低。
答案 1 :(得分:1)
你需要建立你的阶级关系。如果我理解正确的话,那么:
虽然它不是一个非常好的设计,但你可以将GUI4EX的引用传递给CustomHandler;无论是在构造函数中还是在像这样的setter方法中:
class CustomHandler {
GUI4EX gui;
// your rest of class members
public void setGui(GUI4EX gui) {
this.gui = gui;
}
// your rest of methods
}
然后在GUI4EX类的某个方法中,传递GUI4EX的引用:
customHandler.setGui ( this );