私は、あなたが知っているだけのようなプログラミングとJavaに非常に新しいです...
私は、以下の説明は、実装し、コマンド制御プログラムの骨格をテストしているコード/プログラムスケルトン(学校での割り当て)に取り組んだし、犬の日に犬を追跡するために使用されることが意図され、そしてプログラムは、最初の段階で受け入れなければならないというのコマンドは次の通りです:-register新しい犬-increase年齢-list犬-remove犬の-exit
正常に動作する必要があり、これらのコマンドの一つだけは、プログラムが終了したことを示すメッセージを出力して、プログラムを終了する必要があり、出口です。これは使用してはいけませんSystem.exitと、してコマンドラインを閉じ、そしてないことによって行われなければなりません。他のコマンドは、指定されたコマンド伝える短いテキストを印刷する必要があります。このテキストは、テストプログラムは、それらを識別できるように、上記のように完全なコマンド名が含まれている必要があります。一つのヒントは、あなた自身のテストが容易になるように、また他の、短い、コマンドを受け入れることです。」
非機能要件の1つは、静的なメソッドや変数は、メインの文字列を除いて使用することはできませんということです。
私の質問はそのためです。どのように私は私のプログラムのスケルトンから静的メソッドを削除することができますか?私は本当に苦労これを理解しています!
import java.util.Scanner;
public class ProgramSkeleton {
static Scanner input = new Scanner(System.in);
public static void initialize() {
System.out.println("Welcome to the dog register!");
System.out.println("Write 0 to register new dog");
System.out.println("Write 1 to increase age");
System.out.println("Write 2 to list dogs");
System.out.println("Write 3 to remove dog");
System.out.println("Write 4 to exit");
}
public static void runCommandLoop() {
boolean done;
do {
String command = readCommand();
done = handleCommand(command);
} while (!done);
}
public static String readCommand() {
System.out.print("> ");
String command = input.nextLine();
return command;
}
private static boolean handleCommand(String command) {
switch (command) {
case "0":
case "register new dog":
System.out.println("You have chosen register new dog.");
return true;
case "1":
case "increase age":
System.out.println("You have chosen increase age.");
return true;
case "2":
case "list dogs":
System.out.println("You have chosen list dogs.");
return true;
case "3":
case "remove dog":
System.out.println("You have chosen remove dog.");
return true;
case "4":
break;
default:
System.out.println("unknown command");
return false;
}
return false;
}
public static void closeDown() {
System.out.println("Goodbye!");
}
public static void main(String[] args) {
initialize();
runCommandLoop();
closeDown();
}
}
うーん...あなたは、必要なオブジェクトをそうでない場合は、それにメソッドを呼び出すために、静的。
これを言っても、単に任意の削除static
mainメソッドを除いて、あなたのクラスにキーワードを。そして、このmainメソッドを変更します。
public static void main(String[] args) {
ProgramSkeleton program = new ProgramSkeleton();
program.initialize();
program.runCommandLoop();
program.closeDown();
}