スッキリわかるJava入門 第8章 インスタンスとクラス②
第8章 インスタンスとクラス②
クラス定義により可能になる2つのこと
クラス型変数とは
クラス型変数が必要な理由
インスタンスの生成方法
- クラス名 変数名 = new クラス名();
public class Main { public static void main(String[] args) { // 1.勇者を生成 Hero h = new Hero(); } }
- 実際にインスタンスを生成しているのは、右辺の「new Hero()」という部分で、どれをHero変数に代入している。
インスタンスのフィールド利用
- 変数名.フィールド名 = 値;
public class Main { public static void main(String[] args) { // 1.勇者を生成 Hero h = new Hero(); // 2.フィールドに初期値をセット h.name = "ミナト"; h.hp = 100; System.out.println("勇者" + h.name + "を生み出しました!"); } }
インスタンスのメソッド呼び出し
- 3.勇者のメソッドを呼び出してゆく を参照
public class Main { public static void main(String[] args) { // 1.勇者を生成 Hero h = new Hero(); // 2.フィールドに初期値をセット h.name = "ミナト"; h.hp = 100; System.out.println("勇者" + h.name + "を生み出しました!"); // 3.勇者のメソッドを呼び出してゆく h.sit(5); h.slip(); h.sit(25); h.run(); } }
- 着目するのは、mainメソッドの内容が「まるで冒険物語のシナリオ台本みたい」でわかりやすい点。
- オブジェクト指向でなければ、mainメソッドの中に、いつくものHP計算処理や繰り返しSystem.out.println()を呼び出していた。
オブジェクト指向のクラスは現実世界と繋がっている
- 6章までのクラス(HelloWorldなど)も「文法的には正しいクラス」だが、「クラスを何のために用いるか」という思想が伴っているか否かに決定的な違いがある。
- 6章までのクラスは、「メソッドが大きくなってきた」「機能単位でクラスを分ける」など、開発者の都合や機能の単位などでクラスやメソッドを作ってきた。
- Heroクラスは、「オブジェクト指向」という明確な思想に基づいてクラスやメソッドが作られている。
- オブジェクト指向を意識したプログラム開発とは「現実世界の人や物、出来事をクラスに置き換えていく」作業にほかならない。
- 現実に似せて作り、現実に似せて動かしていく、これがオブジェクト指向の根本的な思想。