【Java】インスタンス化


クラスのインスタンス化

クラス という 「型」 から 「具体的な実体」 に生成されたものを インスタンス と呼びます。
そして、それらの一連の流れを インスタンス化 とよびます。

システム開発の現場では、インスタンスを生成することを「newする」とか言ったりするみたいです。

インスタンス化の書き方

//コンストラクタ名とクラス名は同じにすること!

  1            2               3        4
クラス名 インスタンス名(変数名) = new コンストラクタ名()
  1. クラス名
  2. インスタンス名(変数名)
  3. 「=」で結んで、new演算子
  4. コンストラクタ名

の順で記述します。

Calulator calc = new Calulator;

上記のインスタンスを生成した例ですが、最初のクラス名「Calulator」と
最後のコンストラクタ名「Calulator()」が 同じ です。
コンストラクタの説明にもあるように、
コンストラクタ名=クラス名 であるためです。

インスタンスを生成するクラスのコンストラクタの作り方によって左右されますが、インスタンスを生成するクラスのコンストラクタによっては引数の値を与えてインスタンスを生成しなければなりません。

クラス名 インスタンス名(変数名) = new コンストラクタ名(引数の値)

サンプルコード2

まずこちらが、「データ」や「処理」を書いた クラス側のコード です。
最初に言った「クラスのプログラミング」に当たる部分です。

//クラス
public class HelloWorld {
    // フィールド
    private String printHello;

    // コンストラクタ
    public HelloWorld() {
        printHello = "Hello World";
    }

    // メソッド
    public void print() {
        System.out.println(printHello);
    }
}

下記がクラスの呼び出し側の「プログラムを実行するためのクラス」のコードです。
このままではまだ型の状態なので、こちらでプログラムを実行できる状態、つまり インスタンス化 します。

//プログラムを実行するためのクラス(mainメソッドを持つクラス)
public class Main {
    // mainメソッド
    public static void main(String[] args) {
        // HelloJavaクラスのインスタンスを生成して、HelloJavaクラス型の変数printHelloWorldに保持する
        HelloWorld printHelloWorld = new HelloWorld();
        // 生成したインスタンスより、HelloWorldクラスのprintメソッドを呼び出す
        printHelloWorld.print();
    }
}

実行結果