今回の記事ではJavaのインスタンス化について解説していきます。
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です。
おやすみなさい
充電します。
今回の記事ではインスタンスとは何かというところの説明と実際のコードではどのような記述をするかについて解説してみました。