使用主要中另一个类的方法?

好的,所以我确实搜索了这个问题并且出现了大量的结果。 所有这些似乎都有不同的场景,每个解决方案都有所不同,所以我有点困惑。

基本上,我有一个运行我的程序的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);