【Java】オブジェクト指向まとめ_その2


前回

【Java】オブジェクト指向まとめ_その1 - Qiita

趣旨

前回は、クラス作成、インスタンス化についてでした。

今回は、インスタンス操作まで行い、一旦終了です。

一部訂正

プログラミングにおけるオブジェクト
訂正前:
「物体」

訂正後:
「情報の集まり」
理由:
現実世界の「物体」では、不都合があるため。

例:
空気は、「オブジェクト」? → Yes

空気は、「物体」? → No
空気は、「情報の集まり」? → Yes

スケジュールは、「オブジェクト」? → Yes

スケジュールは、「物体」? → No
スケジュールは、「情報の集まり」? → Yes

参考

【Java】 オブジェクトって何? | 一番かんたんなJava入門
Javaのオブジェクト指向入門

【Java】 コンストラクタって何? this( )の意味 | 一番かんたんなJava入門

インスタンスを使う準備

前回のコード(再掲)

Car.java
class Car {
    String carname = "A"; // 車の名前
    String color = "red"; // 車の色

    void start() { // 車の発信動作
        System.out.println("発進します");
    }

    void stop() { // 車の停止動作
        System.out.println("止まります");
    }
}

【プログラムの解説】

  • Carクラス作成
CarTest.java
class CarTest{
    public static void main(String[] args){
        Car car = new Car();
    }
}

【プログラムの解説】

  • Car型の参照型変数carにCarインスタンスを代入
  • インスタンス本体ではなく、参照(インスタンス本体の位置)が代入される。

参照型変数を通して、インスタンスのフィールドを操作

CarTest.java
class CarTest{
    public static void main(String[] args){
        Car car;
        car = new Car();
        car.carname = "B"; // 車の名前を"B"に変更
        car.color = "blue"; // 車の色を"blue"に変更
    }
}

【プログラムの解説】

  • carのcarnameにBを代入。
  • carのcolorにblueを代入。
  • 参照型変数名.フィールド名とすると、インスタンスのフィールドが操作可能。

参照型変数を通して、インスタンスのフィールドを出力

CarTest.java
class CarTest{
    public static void main(String[] args){
        Car car;
        car = new Car();
        car.carname = "B";
        car.color = "blue";
        System.out.println(car.carname); // 出力結果:B
        System.out.println(car.color); // 出力結果:blue
    }
}

【プログラムの解説】

  • 出力も基本は同じで、参照型変数名.フィールド名として操作可能。

参照型変数を通して、インスタンスのメソッドを実行

CarTest.java
class CarTest{
    public static void main(String[] args){
        Car car;
        car = new Car();
        car.carname = "B";
        car.color = "blue";
        car.start(); // 出力結果:発信します
        car.stop(); // 出力結果:止まります
    }
}

【プログラムの解説】

  • メソッドもフィールドと操作方法は同じで、参照型変数名.メソッド名として操作可能。

結果

まとめ

概要:

  • プログラミングにおけるオブジェクトは、「情報の集まり」で「名前」をつけたもの。実体がある。
  • オブジェクト指向は、オブジェクトを扱う為の考え方。
  • クラスは設計書。インスタンスはクラス型で生成した実体。

インスタンス操作について:

  • インスタンスを操作するには、「クラス作成→インスタンス化→インスタンスの参照を保存→参照を通して、インスタンスのフィールド、メソッドを操作」という手順を踏む。

その他:

  • インスタンス操作以外の難しそうな用語はここではスルー。
  • コンストラクタ/デフォルトコンストラクタ/this/this()/カプセル化/継承/ポリモルフィズム/ガベージコレクタ