主类中的Java调用方法
假设我有主类中的Java调用方法,java,oop,class,Java,Oop,Class,假设我有Main类,它有一个classA的实例 如何在类a中调用Main类中的方法 谢谢 如果它是一个实例方法,那么您需要A中的M的一个实例来调用A中的M的方法。如果它是一个静态方法,您可以直接调用它。但是您持有的是循环引用,所以要小心。Main.methodName()表示静态方法 虽然我觉得你想做的可能是不好的练习。您的Main方法或类应该只是一个入口点要从calss a调用Main类中的方法,您需要类a中的Main类实例(将它们考虑在同一个包中),如果两个CALS之间没有继承之类的关系。如
Main
类,它有一个classA
的实例
如何在类a
中调用Main
类中的方法
谢谢 如果它是一个实例方法,那么您需要A中的M的一个实例来调用A中的M的方法。如果它是一个静态方法,您可以直接调用它。但是您持有的是循环引用,所以要小心。Main.methodName()表示静态方法
虽然我觉得你想做的可能是不好的练习。您的Main方法或类应该只是一个入口点要从calss a调用Main类中的方法,您需要类a中的Main类实例(将它们考虑在同一个包中),如果两个CALS之间没有继承之类的关系。如果是静态的,则可以调用Main.methodName() 这被称为
组合
…,其中一个类引用了另一个类…
当我们需要一个类的一个或几个功能,而不是所有功能时,组合比继承更受欢迎。
例如:
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
}
如果该方法是静态方法(即使用“publicstaticreturntype methodName()”声明),那么在类中,需要调用Main.methodName()
但是,如果该方法是实例方法(声明为“public ReturnType methodName()”),则需要以某种方式将Main的实例传递到的实例中(可能通过构造函数或setter方法)。在类内部,您可以调用instanceOfMain.methodName()
然而(正如一些人已经提到的)这可能不是处理事情的最佳方式。主类应该只是程序开始的地方;它不是您应该执行任何真正的程序逻辑的地方。如果它是一个静态方法,就这样调用它。如果它不是一个静态方法,a
中的方法需要一个Main
[的实例来调用该方法],不是吗?但是,我建议在大多数情况下避免像这样的“循环”。为什么不在类A对象上使用get方法将值获取到主类中,使用本地方法进行操作,并使用set方法将结果值发送回类A对象?最好的办法是将main
中的内容放入B
类中。然后让A
referenceB
,让Main
只做A=newa()之类的事情代码>和a.doSomething()代码>。