0

講師が課題の採点に問題を抱えています。私はBlueJで次のプログラムを作成しましたが、彼はおそらくEclipseを使用しています。問題は、BlueJにmainメソッドでコードを起動させることができなかったため、代わりにコンストラクターを使用することを選択したことです。私のBlueJコードをEclipseにコピー/貼り付けすると、問題があることがわかります。

Error: Could not find or load main class Misspelled

以下のコンストラクターのみのプログラムを、mainメソッドが機能するプログラムに変換するにはどうすればよいですか?コンストラクターはもう必要ありません。


import java.util.Scanner;


public class RandomGame
{
int usersScore = 0;

public RandomGame()
{
    Scanner userInput = new Scanner(System.in);

    String[] wrongWords = {"mispelled","kobra", "wishfull", "adress", "changable","independant", "emberrass", "cieling", "humerous", "wierd"} ;
    String[] rightWords = {"arctic", "miscellaneous", "piece", "prejudice", "grateful","ecstasy", "fascinate", "definite", "changeable", "conscious"};
    double randomNumber;
    int randomNumberInt;
    String wordToCheck;



            //Display Rules
    System.out.printf("Enter Either 'y' or 'n'");

            //Keep Looping Game
    while(usersScore < 5)
    {
            //Generate A Random Number
    randomNumber = generateRandomNumber();     //Math.round(10 * Math.random());
    randomNumberInt = ((int)(randomNumber));


            //Display User's Score
    System.out.printf("\n\nCurrent Score: %d\n", usersScore);

            //Check Place Value Of Random Number In Array
    if(randomNumber %2 == 0)
    {
        wordToCheck = rightWords[randomNumberInt];

        System.out.printf("Correct?: %s\n", wordToCheck);
        rightCheck(userInput.next());
    }
    else
    {
        wordToCheck = wrongWords[randomNumberInt];

        System.out.printf("Correct?: %s\n", wordToCheck);
        wrongCheck(userInput.next());
    }

   }
    //System.out.printf(wordToCheck);



}

public double generateRandomNumber()
{
    double randNum;

    randNum = Math.round(10 * Math.random());

    return(randNum);
}

public boolean rightCheck(String usersAnswer)
{
    if(usersAnswer.equals("y"))
    {
        System.out.printf("Correct! from rightCheck");
        usersScore++;

        return(true);
    }
    else
    {
        System.out.printf("Incorrect from rightCheck");
        usersScore--;

        return(false);
    }
}

public boolean wrongCheck(String usersAnswer)
{
    if(usersAnswer.equals("n"))
    {
        System.out.printf("Correct! from wrongCheck");
        usersScore++;

        return(true);
    }
    else
    {
        System.out.printf("Incorrect from wrongCheck");
        usersScore--;

        return(false);
    }
}
}
4

4 に答える 4

1

次の手順を検討してください。

  1. コンストラクターを main メソッドに変更するpublic static void main(String[] args)
  2. staticコンストラクターでメソッドとして使用されるすべてのプライベート/パブリック メソッドを変更します
  3. メンバ変数usersScoreを static に変更するか、代わりに RandomGame のインスタンスを作成して main の値を追跡します。usersScore

人に魚を与えれば、その人を一日養うことができます。彼に魚の捕り方を教えてあげれば、あなたは彼に一生食べさせることができる

于 2013-03-04T09:48:12.860 に答える
1

1 つの方法は、メイン メソッドを保持する別のクラスを作成することです。

public class Main
{
    public static void main (String args[])
    {
        RandomGame rGame = new RandomGame();
    }
}

(注: 上記の場合、.java ファイルの名前は Main.java でなければなりません)

それ以外の場合は、次の方法で main() を RandomGame クラスに追加するだけです

public static void main (String args[])
    {
        RandomGame rGame = new RandomGame();
    }
于 2013-03-04T09:45:55.097 に答える
0

書くpublic static void main(String args[])

メイン内で、クラスのインスタンスを作成します。

于 2013-03-04T09:45:43.597 に答える
0

以下のコードは、次の変更を加えています。

  • メイン メソッドにコンストラクタ ロジックを追加
  • メソッドを静的にする
  • フィールドを静的にする

    import java.util.Scanner;
    
    public class RandomGame {
        static int usersScore = 0;
    
        public static void main(String[] args) {
            Scanner userInput = new Scanner(System.in);
    
            String[] wrongWords = { "mispelled", "kobra", "wishfull", "adress",
                    "changable", "independant", "emberrass", "cieling", "humerous",
                    "wierd" };
            String[] rightWords = { "arctic", "miscellaneous", "piece",
                    "prejudice", "grateful", "ecstasy", "fascinate", "definite",
                    "changeable", "conscious" };
            double randomNumber;
            int randomNumberInt;
            String wordToCheck;
    
            // Display Rules
            System.out.printf("Enter Either 'y' or 'n'");
    
            // Keep Looping Game
            while (usersScore < 5) {
                // Generate A Random Number
                randomNumber = generateRandomNumber(); // Math.round(10 *
                                                        // Math.random());
                randomNumberInt = ((int) (randomNumber));
    
                // Display User's Score
                System.out.printf("\n\nCurrent Score: %d\n", usersScore);
    
                // Check Place Value Of Random Number In Array
                if (randomNumber % 2 == 0) {
                    wordToCheck = rightWords[randomNumberInt];
    
                    System.out.printf("Correct?: %s\n", wordToCheck);
                    rightCheck(userInput.next());
                } else {
                    wordToCheck = wrongWords[randomNumberInt];
    
                    System.out.printf("Correct?: %s\n", wordToCheck);
                    wrongCheck(userInput.next());
                }
    
            }
            // System.out.printf(wordToCheck);
    
        }
    
        public static double generateRandomNumber() {
            double randNum;
    
            randNum = Math.round(10 * Math.random());
    
            return (randNum);
        }
    
        public static boolean rightCheck(String usersAnswer) {
            if (usersAnswer.equals("y")) {
                System.out.printf("Correct! from rightCheck");
                usersScore++;
    
                return (true);
            } else {
                System.out.printf("Incorrect from rightCheck");
                usersScore--;
    
                return (false);
            }
        }
    
        public static boolean wrongCheck(String usersAnswer) {
            if (usersAnswer.equals("n")) {
                System.out.printf("Correct! from wrongCheck");
                usersScore++;
    
                return (true);
            } else {
                System.out.printf("Incorrect from wrongCheck");
                usersScore--;
    
                return (false);
            }
        }
    }
    
于 2013-03-04T09:48:21.890 に答える