クラスとオブジェクト第25章 / 全26章
インスタンスを作る
この章で学ぶこと
クラス(設計図)をもとに実物を作る「インスタンス化」を学びましょう。クラスとインスタンスの関係を理解するのがオブジェクト指向の第一歩です。
設計図から実物を作る
前の章で Dog クラス(設計図)を作りました。設計図があるだけでは犬は存在しません。設計図をもとに実際に作ったものをインスタンスと呼びます。
同じ設計図から何匹でも犬を作れます。
Dogクラスからインスタンスを2つ作る
text
1ポチ:ワン!2ハナ:ワン!java
1class Dog {2 String name;3 int age;45 void bark() {6 System.out.println(name + ":ワン!");7 }8}910public class Main {11 public static void main(String[] args) {12 Dog dog1 = new Dog();13 dog1.name = "ポチ";14 dog1.age = 3;1516 Dog dog2 = new Dog();17 dog2.name = "ハナ";18 dog2.age = 5;1920 dog1.bark(); // ポチ:ワン!21 dog2.bark(); // ハナ:ワン!22 }23}Dog dog1 = new Dog();→Dogクラスからインスタンスを1つ作りdog1に入れるdog1.name = "ポチ";→dog1の名前フィールドに「ポチ」を入れるDog dog2 = new Dog();→ もう1つ別のインスタンスを作るdog1.bark();→dog1(ポチ)のメソッドを呼び出すdog1とdog2は同じ設計図から作られたが、それぞれが別々のデータを持つ
dog1.name を変えても dog2.name には影響しません。
ポイント
new クラス名() でインスタンスを作ります。1つのクラスから何個でもインスタンスを作れ、それぞれが独立したデータを持ちます。
よくあるミス
new を忘れてしまう
Dog dog1 = Dog(); のように new を省略するとエラーになります。インスタンスを作るときは必ず new クラス名() と書きましょう。
まとめ
- インスタンスはクラス(設計図)から作った実物
クラス名 変数名 = new クラス名();でインスタンスを作る.(ドット)でフィールドやメソッドにアクセスする- 同じクラスから作ったインスタンスはそれぞれ独立したデータを持つ
確認問題
クラスからインスタンスを作るときに使うキーワードはどれですか?