【Java】インスタンスを配列に格納する方法

今回の記事ではインスタンスを配列に格納していく方法について解説します。

ご質問等あればこちらのTwitterアカウントまでお願いします。

現役エンジニアが教えるJava初心者からWebアプリ開発できるようになるまでの勉強法>>>

サンプルコード

今回の記事ではBedクラスとBedクラスのテストを行うBedTestクラスを用意しました。mainメソッドはBedTestクラスにあります。

Bedクラス

まずはBedクラスです。

/**
 * Bedクラス
 * 今回はこのクラスのインスタンスを配列に格納していく
 */
public class Bed {
	// ベッドの縦の長さを保持する
	private int tateNagasa;

	// ベッドの横幅を保持する
	private int yokoHaba;

	// ベッドのサイズを保持する
	private String bedSize;

	// コンストラクタ
	Bed (int tate, int yoko, String bedSize) {
		this.tateNagasa = tate;
		this.yokoHaba = yoko;
		this.bedSize = bedSize;
	}

	// ベッドの情報を出力するメソッド
	public void printData() {
		System.out.println(bedSize + "ベッドのサイズは縦の長さが" + tateNagasa + "cm 横幅は" + yokoHaba + "cmです。");
	}
}

フィールド

Bedクラスはフィールドとしてベッドの縦の長さを表すint型のtateNagasaとベッドの横幅を表すint型のyokoHabaそしてベッドのサイズを意味するString型のbedSizeを持っています。

int tateNagasa;
int yokoHaba;
String bedSize;

コンストラクタ

それぞれのフィールドに値を保持させるために3つの引数を持ったコンストラクタを用意しています。

Bed (int tate, int yoko, String bedSize) {
	this.tateNagasa = tate;
	this.yokoHaba = yoko;
	this.bedSize = bedSize;
}

メソッド

最後にメソッドですが、Bedの情報を出力するためのprintDataメソッドを準備しました。それぞれのインスタンスが持つフィールドの値をコンソールに出力します。

public void printData() {
	System.out.println(bedSize + "ベッドのサイズは縦の長さが" + tateNagasa + "cm 横幅は" + yokoHaba + "cmです。");

}

BedTestクラス

先ほど作ったBedクラスをテストするTestクラスです。こちらのクラスで実際にインスタンスを配列に格納していきます。

public class BedTest {
	// Bedクラスのインスタンスを生成して配列に格納する
	public static void main(String[] args) {
		// シングルサイズのベッドのインスタンスを生成
		Bed singleBed= new Bed(190, 100, "Single");
		// ダブルサイズのベッドのインスタンスを生成
		Bed doubleBed= new Bed(210, 140, "Double");
		// 赤ちゃんサイズのベッドのインスタンスを生成
		Bed babyBed= new Bed(93, 55, "baby");
		// セミダブルのベッドのインスタンスを生成
		Bed semiDoubleBed= new Bed(210, 120, "semiDouble");

		// Bedクラスの配列の宣言
		Bed[] bedList = new Bed[4];

		// 配列にインスタンスを格納していく
		bedList[0] = babyBed;
		bedList[1] = singleBed;
		bedList[2] = semiDoubleBed;
		bedList[3] = doubleBed;

		// ループで回してBedクラスのprintDataメソッドを実行していく
		for(Bed bed: bedList) {
			bed.printData();
		}
	}
}
>>>UdemyでおすすめのJava講座はこちら

複数インスタンスを作成

配列に格納していくことになるインスタンスを作成します。今回はsingleBed, doubleBed, babyBed, semiDoubleBedの四つのBedインスタンスを準備しました。

Bed singleBed= new Bed(190, 100, "Single");
Bed doubleBed= new Bed(210, 140, "Double");
Bed babyBed= new Bed(93, 55, "baby");
Bed semiDoubleBed= new Bed(210, 120, "semiDouble");

Bedインスタンスを配列に格納していく

ここから実際に配列に格納していきます。今回配列に格納するインスタンスは全てBedクラスをインスタンス化したものなのでBed型の配列であるbedListを宣言・初期化します。

その後bedListに順番にインスタンスを代入していきます。これを今回の場合では四回繰り返します。

Bed[] bedList = new Bed[4];
bedList[0] = babyBed;
bedList[1] = singleBed;
bedList[2] = semiDoubleBed;
bedList[3] = doubleBed;

配列に格納したインスタンスのメソッドを実行していく

最後に配列に格納したbedを拡張forによって順番に取り出しBedクラスが持つメソッドであるprintData()メソッドを呼び出します。

for(Bed bed: bedList) {
	bed.printData();
}

 

動作確認

以上のコードを実際に実行して動きを確認してみます。実行結果は以下の通りになります。

babyベッドのサイズは縦の長さが93cm 横幅は55cmです。
Singleベッドのサイズは縦の長さが190cm 横幅は100cmです。
semiDoubleベッドのサイズは縦の長さが210cm 横幅は120cmです。
Doubleベッドのサイズは縦の長さが210cm 横幅は140cmです。

以上、インスタンスを配列に格納する方法でした。

私はプログラミング学習はUdemyで行うのが以下のような理由で圧倒的におすすめです。

    • 動画で好きなときに学べる
    • 一流のエンジニアから教えてもらえる
    • 好きな技術を体系的に学べる
    • 実際に手を動かしながら学ぶことができる
    • セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
    • 講座自体がアップデートされていくので情報が古くなりにくい

UdemyにはJavaの基礎講座 もあるので興味がある方は一度チェックしてみてください!

またJavaが無料で学べるスクールもあります!説明会も行っているので、一度参加してJavaを学んでみるのもおすすめです!公式サイトはこちら!

関連記事

 

コメント

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