假设我有Main
个类,它有一个类A
的实例。
如何在课程Main
中的A
课程中调用方法?
谢谢!
答案 0 :(得分:1)
这称为Composition
... 其中某个类有其他类的参考...
Composition
优先于 Inheritance
当我们需要一个或几个功能但不是所有类的功能时。
<强>例如强>
public class A{
Main m = new M(); // m is a Object Reference Variable of type Main in class A
m.go(); // go() is a method in class Main
}
答案 1 :(得分:0)
如果它是一个实例方法,那么你需要A中的M实例来调用A中的M方法。如果它是一个静态方法,你可以直接调用它。但你要保留循环引用,所以要小心。
答案 2 :(得分:0)
静态方法的Main.methodName()。
虽然听起来像你想要做的事情可能是不好的做法。您的主要方法或类应该只是一个入口点
答案 3 :(得分:0)
要从calss A调用Main类中的方法,如果两个calsses都没有像inheritance.if static这样的关系,那么你需要在类A中的Main类实例(在同一个包中考虑它们)然后你可以调用Main.methodName ();
答案 4 :(得分:0)
如果方法是静态方法(即使用“public static ReturnType methodName()”声明),那么在A类中,您需要调用Main.methodName()。
但是,如果方法是实例方法(声明为“public ReturnType methodName()”),那么您需要以某种方式将Main的实例传递给A的实例(可能通过构造函数或setter方法)。在A类中,您可以调用instanceOfMain.methodName()。
然而(正如有些人已经提到的)这可能不是处理事情的最佳方式。 Main类应该只是程序启动的地方;它不是你应该做任何真正的程序逻辑的地方。