使用主要中另一个类的方法?
好的,所以我确实搜索了这个问题并且出现了大量的结果。 所有这些似乎都有不同的场景,每个解决方案都有所不同,所以我有点困惑。
基本上,我有一个运行我的程序的Driver类,并包含main方法。 我有一个第二类,有一些编辑派对的方法(比如游戏中的角色派对)。 我想做的是这(主要方法的一部分)
System.out.println("Are you for your next battle? Or do you want to your party?"); Scanner readyScanner = new Scanner(System.in); String readyString = readyScanner.next(); while(!readyString.equals("ready") && !readyString.equals("edit")) { System.out.println("Error: Please input if you are ready for your next battle, or to change your party."); readyScanner = new Scanner(System.in); readyString = readyScanner.next(); } if(readyString.equals("edit")) { displayEditParty(playerParty, tempEnemy); }
很多这只是一些背景代码,问题在于
displayEditParty(playerParty, tempEnemy);
我收到了错误
Driver.java:283: cannot find symbol symbol : method displayEditParty(java.util.ArrayList,java.util.ArrayList) location: class Driver displayEditParty(playerParty, tempEnemy);
那么,我如何从我主要的另一个类中调用这个方法呢? 在我的代码中,我使用其他类的方法几次,我有点困惑,因为这个不起作用。
你应该将displayEditParty
函数displayEditParty
public static,然后你可以通过className.displayEditParty(?,?);
在其他类中使用它className.displayEditParty(?,?);
类的方法只能由该类的对象访问。 检查以下代码:
class A{ void methodA(){ //Some logic } public static void methodB(){ //Some logic } } public static void main(String args[]){ A obj = new A(); obj.methodA(); // You can use methodA using Object only. A.methodB(); // Whereas static method can be accessed by object as well as obj.methodB(); // class name. }
如果你的方法是static
,你可以调用ClassName.methodName(arguments);
如果你的驱动程序类不是静态的,你应该创建该类的瞬间并调用你的方法。
ClassName className=new ClassName(); className.displayEditParty(playerParty, tempEnemy);
我没看到你在代码中声明Driver类的位置。
Driver foo = new Driver(); foo.displayEditParty(playerParty, tempEnemy);