私は、C と Pascal に堪能な 80 年代のプログラマーです。私はJavaとその概念にかなり慣れていません。OOP 手法を使用して Java の新しい方法を学ぼうとしているときに、アプリケーションを組み立てる正しい方法についてかなり混乱しています。
次のルールで基本的なプログラムを構築しようとしています。
組織には独自の社内ライブラリがあります。Staff クラスは一般的で、Name と Phone があります。職員の中には司書もいます。他は会員です。したがって、Member と Librarian は特殊なクラスです。このコンテキストでは、それらを継承または拡張と呼ぶと思います。
現在、メンバー レコードの入力や出力などの基本的な機能を構築しようとしています。テキストベースのメニューを作成しようとしています。おそらく後で、サブメニューを検討します。今のところ、シンプルなメニューです。
メニューもオブジェクトにするべきかどうかはわかりませんが、そうするつもりです。
これを念頭に置いて、これが私がやったことです。
私の主なプログラム:
public class Library extends Menus {
public static void main(String[] args) {
Menus Start = new Menus();
Start.ShowMainMenu();
}
}
StaffClass.java
public class StaffClass {
private String Name;
private String Phone;
public void InputData() {
Scanner UserInput = new Scanner(System.in);
System.out.print("Enter staff name "); Name = UserInput.nextLine();
System.out.print("Enter staff phone number "); Phone = UserInput.nextLine();
}
public void PrintData() {
System.out.println("Name : " + Name);
System.out.println("Phone : " + Phone);
}
}//end StaffClass
Menus.java
public class Menus extends MemberClass {
int c;
public void ShowMainMenu() {
Scanner ui = new Scanner(System.in);
while(1==1) {
System.out.println("Main menu");
System.out.println("1. Add student");
System.out.println("2. Display all");
System.out.println("3. exit");
System.out.print("Enter choice"); c = ui.nextInt();
switch(c) {
case 1 : getInputs(); /*System.out.println("option 1");*/ break;
case 2 : ShowAllInfo(); break;
case 3 : System.out.println("Leaving the program now..."); System.exit(0); break;
default : System.out.println("error.");
}
}
}
}
MemberClass.java
public class MemberClass extends StaffClass {
int TotalBooks;
public void getInputs() {
InputData();
UpdateTotalBooks();
}
public void ShowAllInfo() {
PrintData();
System.out.println("total books taken = " + TotalBooks);
}
public void UpdateTotalBooks() {
Scanner ui = new Scanner(System.in);
System.out.print("Enter number of books "); TotalBooks = ui.nextInt();
}
}
これは、非常に多くのクラスとメニュー システムを組み合わせた最初の Java プログラムです。
私の重要な質問は、これが Java でプログラムを組み立てる正しい方法なのか、それとも別の方法があるのかということです。
コードへの最良のオプション/変更を自由に提案してください。しかし、一般化と専門化の概念は維持したいと思います。
ありがとう!