12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Java】インスタンス化

Last updated at Posted at 2020-11-23

クラスのインスタンス化

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

システム開発の現場では、インスタンスを生成することを「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();
    }
}

実行結果
image.png

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?