【Java】インスタンス化とは何かわかりやすく解説

そもそもインスタンスとは

インスタンスというのはクラスをもとにして作られた実体のことを指します。ここで何言ってんねんとキレそうな気持ちはわかるんですけど、もう少し話を聞いてほしいです。

ふざけんなよ、なにいっとんねん

クラスというのは設計図のことです。何かを作る時って設計図とかがあると思うんですけど、それがクラスです。例えばアマゾンでベッドを買ったときに、組み立て方の説明書も中に入ってると思うんですけどそれがクラスです。

クラスは設計図ってことね、OKそれはわかった。

ですが実際に設計図だけあってもベッドで寝ることはできません。届いた部品と設計図をもとにベッドを組み立てなければなりません。こうして苦労して組み立てられたベッドそのものがインスタンスです。

設計図(クラス)をもとにして実際に作られたものがインスタンスね

そしてこの「ベッドを組み立てる作業」のことがインスタンス化です。

実際のコードでインスタンス化を理解する

Bedクラスを作る

実際のコードでインスタンス化を理解してみようと思います。せっかくベッドの例で話をしてきたので、Bedクラスを作成しBedクラスをインスタンス化してみます。

まずは以下のような簡単なBedクラスを作成します。Bedクラス、つまりこれはプログラム内でのベッドの設計図です。この設計図によるとベッドは縦の長さと横幅の値(フィールド)を持っています。さらに寝たり、充電したりするメソッドも持っています。

public class Bed {
	int tate_nagasa;
	int yoko_haba;

	void sleep() {
		System.out.println("おやすみなさい");
	}

	void juden() {
		System.out.println("充電します。");
	}
}

しかしこれらのフィールドやメソッドはこのままでは使うことはできません。現実世界でいうとベッドの設計図があってもベッドで寝ることができないのと同じです。

 



Bedクラスをインスタンス化して寝てみる

作成したBedクラスのフィールドやメソッドを使うためには設計図をもとにして実体を作る作業、つまりインスタンス化が必要です。別のBedTestクラスを作成し、インスタンス化のコードを書いてみます。

インスタンス化するためのコードは「インスタンス化したいクラス名 インスタンスにつけたい名前(自由に名前をつけて良い) = new クラス名();」これになります。こうすることでそれまでただの設計図だったものが実体(インスタンス)として使えるようになります。

以下はインスタンス化した後に、クラスが持っているフィールドに値を入れて表示したり、メソッドを使ってみるプログラムです。

public class BedTest {

	public static void main(String[] args) {

		// この一文こそがインスタンス化!これをすることでBedクラスのフィールドやメソッドを使えるようになる。korega_instance がインスタンス、つまり実体。
		Bed korega_instance= new Bed();

		// Bedクラスのフィールドに値を代入して表示する。
		korega_instance.tate_nagasa = 190;
		korega_instance.yoko_haba = 100;

		System.out.println("今回作成したベッドの縦の長さは" + korega_instance.tate_nagasa + "cmです。");
		System.out.println("今回作成したベッドの横幅は" + korega_instance.yoko_haba + "cmです。");

		// Bedクラスのメソッドを使ってみる。
		korega_instance.sleep();
		korega_instance.juden();
	}

}

実行結果は以下の通りになると思います。

今回作成したベッドの縦の長さは190cmです。
今回作成したベッドの横幅は100cmです。
おやすみなさい
充電します。

まとめ

今回の記事ではインスタンスとは何かというところの説明と実際のコードではどのような記述をするかについて解説してみました。

コメント

タイトルとURLをコピーしました