0

public static void xxx()いつとを使用するか混乱していますpublic void xxx()。私が得ているエラーはメインクラスにあります。

generateRandomNumber();

エラー: (エラー: 非静的メソッド generateRandomNumber() は静的コンテキストから参照できません)

getUserInput();

エラー: (エラー: 非静的メソッド getUserInput() は静的コンテキストから参照できません)

getResult();

エラー: (エラー: 非静的メソッド getResult() は静的コンテキストから参照できません)

public class HighLowGame {
 int randomNumber;
 int guess;

public void generateRandomNumber(){
    randomNumber =  (0+(int)(Math.random() * ((0 - 99) + 1)));
}

public void getUserInput(){
    guess = Integer.parseInt(JOptionPane.showInputDialog(
           null,
           "Plaese input"));        
}

public String getResult(){
    if(randomNumber<guess){
       return "Your number is bigger than magic number";
   }
   else if (randomNumber>guess) {
       return "Your number is smaller than magic number";
   }
   else {
       return "You are correct! "+randomNumber;
   }
}

public static void main(String[] args){
    generateRandomNumber();
    getUserInput();
    getResult();
}

}

4

3 に答える 3

2

静的コンテキストから非静的インスタンス メソッド/変数に直接アクセスすることはできません。それらにアクセスするには、クラスのインスタンスが必要です。

public static void main(String[] args){
    HighLowGame  ref = new HighLowGame ();
   ref. generateRandomNumber();
    ref.getUserInput();
    ref.getResult();
}

または、これらすべてのメソッドを静的にして直接アクセスすることもできます。そのクラスのすべてのインスタンスが日付/メソッドを共有する必要があると思われる場合は、メソッドを静的にします。

于 2013-02-12T11:00:41.697 に答える
1

のインスタンスを必要とするメソッドを呼び出そうとしていますHighLowGame

メインメソッドを次のように変更します:-

public static void main(String[] args){
    HighLowGame game = new HighLowGame();
    game.generateRandomNumber();
    game.getUserInput();
    game.getResult();
}
于 2013-02-12T11:01:12.333 に答える
0

HighLowGame のインスタンスでメソッドを呼び出す必要があります。

public static void main(String[] args){
    HighLowGame game = new HighLowGame();
    game.generateRandomNumber();
    game.getUserInput();
    game.getResult();
}

またはあなたのメソッドを次staticのように宣言します

public static void generateRandomNumber(){ ..}
于 2013-02-12T11:01:22.983 に答える