从一个类到另一个类的调用方法

时间:2014-03-23 19:37:29

标签: java methods

开始学习UML图,以及如何在类之间进行交互。坚持如何将此方法从Player类调用到main方法类。 (我的指示说我不允许使用构造函数)

玩家类=

 public String askForGuess()
{
    System.out.println("Enter your guess: ");
    String userGuess = keyboard.nextLine();
    return userGuess;
}

Bagel类(包括main方法,试图调用askForGuess方法

Player.askForGuess(); //Java is saying I need to change it to static, is that true?

3 个答案:

答案 0 :(得分:1)

是的,如果您想使用类名称调用方法,该方法应为静态

如果您不想使方法成为静态,则应创建该类的实例,然后调用该方法。

在这种情况下,使方法静态有意义,因为与类的字段/方法没有任何“关系”。

答案 1 :(得分:1)

在main(...)方法中,如果直接调用另一个类方法,如:MyClass.doSomething(),则必须将方法doSomething()声明为static。否则,您需要创建类的实例,如下所示:

MyClass clazz = new MyClass();

然后调用它的方法:clazz.doSomething();

希望这有帮助。

答案 2 :(得分:0)

正如其他人指出的那样,使方法静态可以解决您的问题。他们没有告诉你的是为什么

static方法与类本身相关联,而不与任何特定对象相关联。您不必创建对象来使用这种静态方法。即使您创建了数千个对象,仍然只有该方法的一个实例。

class Foo{
    void foo(){...}
}

new Foo().foo(); //method is part of each object


class Bar {
    static void bar(){...}
}

Bar.foo();  //method is at the class level

详细了解here