好的,所以我确实搜索了这个问题,并显示了可观的结果。尽管它们似乎都具有完全不同的场景,并且每种解决方案都不相同,所以我有点困惑。
基本上,我有一个Driver类,它运行我的程序并包含main方法。我有第二堂课,其中提供了几种编辑聚会的方法(例如游戏中的角色聚会)。我想要做的是这(主要方法的一部分)
System.out.println("Are you <ready> for your next battle? Or do you want to <edit> 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 <ready> if you are ready for your next battle, or <edit> 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<Character>,java.util.ArrayList<Character>) location: class Driver displayEditParty(playerParty, tempEnemy);
那么,如何在我的主类中从另一个类调用此方法?在我的代码中,我几次使用了其他类的方法,我对此感到有些困惑,因为它不起作用。
您应该将displayEditParty函数设为public static,然后可以通过以下方式在其他类中使用它:className.displayEditParty(?,?);
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. }