3

私は、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 でプログラムを組み立てる正しい方法なのか、それとも別の方法があるのか​​ということです。

コードへの最良のオプション/変更を自由に提案してください。しかし、一般化と専門化の概念は維持したいと思います。

ありがとう!

4

2 に答える 2