0

假设我有Main类,它有一个 class 实例A

如何在Main类中调用类中的方法A

谢谢!

4

5 回答 5

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

 }
于 2012-08-04T05:30:04.070 回答
0

如果方法是静态方法(即用“public static ReturnType methodName()”声明),那么在A类中,你需要调用Main.methodName()。

但是,如果该方法是实例方法(声明为“public ReturnType methodName()”),那么您需要以某种方式将 Main 的实例传递给 A 的实例(可能通过构造函数或 setter 方法)。在 A 类中,您可以调用 instanceOfMain.methodName()。

然而(正如一些人已经提到的)这可能不是处理事情的最佳方式。Main 类应该只是程序开始的地方;它不是你应该做任何真正的程序逻辑的地方。

于 2012-08-04T06:46:23.727 回答
0

如果是实例方法,那么需要A里面有M的实例,才能调用A里面M的方法。如果是静态方法,直接调用即可。但是你持有循环引用,所以要小心。

于 2012-08-04T05:23:25.063 回答
0

Main.methodName() 用于静态方法。

尽管在我看来,您尝试做的事情可能是不好的做法。您的 Main 方法或类应该只是一个入口点

于 2012-08-04T05:24:29.040 回答
0

要从 calss A 调用 Main 类中的方法,如果两个 calsses 没有像继承这样的关系,则需要类 A 中的 Main 类的实例(考虑它们在同一个包中)。如果是静态的,那么您可以调用 Main.methodName();

于 2012-08-04T05:26:51.130 回答