Java
オブジェクト指向
クラス
勉強メモ
インスタンス

【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インスタンスを代入

  • インスタンス本体ではなく、参照(インスタンス本体の位置)が代入される。
    参照.png


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


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を代入。

  • 参照型変数名.フィールド名とすると、インスタンスのフィールドが操作可能。

参照(フィールド操作).png


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


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(); // 出力結果:止まります
}
}

【プログラムの解説】


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

参照(メソッド操作).png


結果

スクリーンショット 2019-04-28 0.33.34.png


まとめ

概要:


  • プログラミングにおけるオブジェクトは、「情報の集まり」で「名前」をつけたもの。実体がある。

  • オブジェクト指向は、オブジェクトを扱う為の考え方。

  • クラスは設計書。インスタンスはクラス型で生成した実体。

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


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

その他:


  • インスタンス操作以外の難しそうな用語はここではスルー。

  • コンストラクタ/デフォルトコンストラクタ/this/this()/カプセル化/継承/ポリモルフィズム/ガベージコレクタ