开始学习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?
答案 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。