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

时间:2013-12-05 06:33:07

标签: java class

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

基本上,我有一个运行我的程序并包含main方法的Driver类。我有一个第二课,有一些编辑派对的方法(比如游戏中的角色派对)。我想做的是这(主要方法的一部分)

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);

那么,我怎么能从我主要的另一个类中调用这个方法呢?在我的代码中,我使用了其他类的方法几次,我有点困惑,因为这个方法不起作用。

3 个答案:

答案 0 :(得分:0)

你应该让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.
}

答案 1 :(得分:0)

如果您的方法是static,则可以致电ClassName.methodName(arguments);

如果你的驱动程序类不是静态的,你应该创建该类的瞬间并调用你的方法。

ClassName className=new ClassName();
className.displayEditParty(playerParty, tempEnemy);

答案 2 :(得分:0)

我看不到你在代码中声明Driver类的位置。

Driver foo = new Driver();
foo.displayEditParty(playerParty, tempEnemy);