小编典典

主要使用其他类的方法吗?

java

好的,所以我确实搜索了这个问题,并显示了可观的结果。尽管它们似乎都具有完全不同的场景,并且每种解决方案都不相同,所以我有点困惑。

基本上,我有一个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);

那么,如何在我的主类中从另一个类调用此方法?在我的代码中,我几次使用了其他类的方法,我对此感到有些困惑,因为它不起作用。


阅读 191

收藏
2020-11-26

共1个答案

小编典典

您应该将displayEditParty函数设为public
static,然后可以通过以下方式在其他类中使用它: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.
}
2020-11-26