Javaのオブジェクト向けプログラミング

9520 ワード

文書ディレクトリ
  • オブジェクト向けプログラム設計(oopと略称)
  • クラス
  • パッケージ(encapsulationはデータ非表示と呼ばれる場合がある)
  • オブジェクト
  • カレンダ例
  • オブジェクト向けプログラミング(oopと略称)
    オブジェクト向けのプログラムは、ユーザに公開された特定の機能部分と非表示の実装部分を含むオブジェクトから構成される.OOPでは,オブジェクトの具体的な実装に関心を持つ必要はなく,ユーザのニーズを満たすことができればよい.
    クラス#クラス#
    クラス(class)は、オブジェクトを構築するテンプレートまたは青写真です.クラスによってオブジェクトを構築するプロセスをクラスのインスタンスの作成(instance)と呼びます.
    パッケージ(encapsulationはデータ非表示と呼ばれる場合があります)
    形式的には,カプセル化はデータと動作を1つのパケットに組み合わせ,オブジェクトの利用者にデータを隠す実装方式にすぎない.オブジェクト内のデータをインスタンスドメイン(instance field)と呼び、データを操作するプロセスをメソッド(method)と呼ぶ.
    オブジェクト
    オブジェクトの3つのプロパティ:
  • オブジェクトの動作(behavior)--オブジェクトにどのような操作を適用できるか、またはオブジェクトにどのような方法を適用できるか.
  • オブジェクトのステータス(state)--それらのメソッドが適用されると、オブジェクトはどのように応答しますか?
  • オブジェクトの表現(identity)--同じ動作と状態を持つ異なるオブジェクトをどのように認識しますか?同じクラスのすべてのオブジェクトインスタンスを使用すると、同じ動作をサポートするためにファミリー式の類似性があります.オブジェクトの動作は呼び出し可能な方法で定義されます.
  • カレンダーの例
    package JavaBase.calendar;
    
    import java.time.DayOfWeek;
    import java.time.LocalDate;
    
    /**
     * @Description TODO   
     * @Author Matthew
     * @Date 2019/4/7 16:15
     * @Version 1.0
     */
    
    public class CalendarTest {
        public static void main(String[] args) {
            LocalDate date = LocalDate.now();
            int month = date.getMonthValue();
            int today = date.getDayOfMonth();
    
            date = date.minusDays(today - 1);//Set to start of month
            DayOfWeek weekday = date.getDayOfWeek();
            int value = weekday.getValue();//1 = Monday,...,7 = Sunday
    
            System.out.println("Mon Tue Wed Thu Fri Sat Sun");
            for (int i = 1; i < value; i++) {
                System.out.println("    ");
            }
            while (date.getMonthValue() == month) {
                System.out.printf("%3d",date.getDayOfMonth());
                if (date.getDayOfMonth() == today) {
                    System.out.print("*");
                }
                else {
                    System.out.print(" ");
                }
                date = date.plusDays(1);
                if (date.getDayOfWeek().getValue() == 1) {
                    System.out.println();
                }
            }
            if (date.getDayOfWeek().getValue() != 1) {
                System.out.println();
            }
        }
    }