ゼロから学ぶJava
トップ/クラスとオブジェクト
クラスとオブジェクト25章 / 全26

インスタンスを作る

この章で学ぶこと

クラス(設計図)をもとに実物を作る「インスタンス化」を学びましょう。クラスとインスタンスの関係を理解するのがオブジェクト指向の第一歩です。

設計図から実物を作る

前の章で Dog クラス(設計図)を作りました。設計図があるだけでは犬は存在しません。設計図をもとに実際に作ったものをインスタンスと呼びます。

同じ設計図から何匹でも犬を作れます。

Dogクラスからインスタンスを2つ作る

text
1ポチ:ワン!
2ハナ:ワン!
java
1class Dog {
2 String name;
3 int age;
4
5 void bark() {
6 System.out.println(name + ":ワン!");
7 }
8}
9
10public class Main {
11 public static void main(String[] args) {
12 Dog dog1 = new Dog();
13 dog1.name = "ポチ";
14 dog1.age = 3;
15
16 Dog dog2 = new Dog();
17 dog2.name = "ハナ";
18 dog2.age = 5;
19
20 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(ポチ)のメソッドを呼び出す
  • dog1dog2 は同じ設計図から作られたが、それぞれが別々のデータを持つ

dog1.name を変えても dog2.name には影響しません。

ポイント

new クラス名() でインスタンスを作ります。1つのクラスから何個でもインスタンスを作れ、それぞれが独立したデータを持ちます。

よくあるミス

new を忘れてしまう

Dog dog1 = Dog(); のように new を省略するとエラーになります。インスタンスを作るときは必ず new クラス名() と書きましょう。

まとめ

  • インスタンスはクラス(設計図)から作った実物
  • クラス名 変数名 = new クラス名(); でインスタンスを作る
  • .(ドット)でフィールドやメソッドにアクセスする
  • 同じクラスから作ったインスタンスはそれぞれ独立したデータを持つ

確認問題

クラスからインスタンスを作るときに使うキーワードはどれですか?