Java 将方法从一个类调用到另一个类

Java 将方法从一个类调用到另一个类,java,methods,Java,Methods,开始学习UML图,以及如何在类之间进行交互。关于如何将这个方法从Player类调用到main方法类的问题。(我的指示说我不允许使用构造函数) 玩家等级= public String askForGuess() { System.out.println("Enter your guess: "); String userGuess = keyboard.nextLine(); return userGuess; } Bagel类(包括main方法,尝试调用askForG

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

是的,如果要使用类名调用方法,该方法应该是静态的

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

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

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

MyClass clazz=新的MyClass()

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


希望这会有所帮助。

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

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

了解更多信息。

谢谢!这回答了我的问题。