【Java入門】構造体をクラスで代替する方法

JavaではC言語のような構造体を宣言、定義することはできません。

ですので、クラスで代替することが多いです。

そこでこの記事では、構造体をクラスで代替する方法について


・構造体とは?
・構造体をクラスで代替
・構造体配列の扱い方

など、基礎的な内容から応用的な内容についても解説していきます。

今回は構造体をクラスで代替する方法について、わかりやすく解説します!

なお、Javaの記事については、こちらにまとめています。

目次

構造体とは?

構造体とは、ある対象に関連する項目をまとめて1つのかたまりにしたものです。

同じように項目をまとめて1つのかたまりにしたものに配列があります。

ただし、配列の場合は同じ型のモノしか1つのかたまりにできません。

構造体はint型や文字列など型の違うモノでも1つのかたまりにできます。

構造体はC/C++、C#などで使用することができます。

しかしJavaには構造体はありません

クラスで代替することが多いです。

構造体をクラスで代替

クラスでコンストラクタやメソッドを定義ぜずに、C言語の構造体のように扱うことができます。

サンプルコードで確認しましょう。

class Info {
    String name;
    int age;
}

public class StructSample {
    public static void main(String[] args) {
        Info info = new Info();
        info.name = "Taro Yamada";
        info.age = 30;

        System.out.println(info.name + ", " + info.age);
    }
}

実行結果:

Taro Yamada, 30

構造体配列の扱い方

構造体を代替するクラスを配列の要素として扱うこともできます。

サンプルコードで確認しましょう。

class Info {
    String name;
    int age;
}

public class StructSample {
    public static void main(String[] args) {
        Info[] arr_info = new Info[3];

        // 各要素ごとにインスタンス化
        for(int i = 0; i < arr_info.length; i++) {
            arr_info[i] = new Info();
        }

        arr_info[0].name = "Taro Yamada";
        arr_info[0].age = 30;

        arr_info[1].name = "Hanako Sato";
        arr_info[1].age = 20;

        arr_info[2].name = "Ichiro Yamamoto";
        arr_info[2].age = 40;

        System.out.println(arr_info[0].name + ", " + arr_info[0].age);
        System.out.println(arr_info[1].name + ", " + arr_info[1].age);
        System.out.println(arr_info[2].name + ", " + arr_info[2].age);
    }
}

実行結果:

Taro Yamada, 30
Hanako Sato, 20
Ichiro Yamamoto, 40

配列arr_infoを宣言するだけでは不十分で、各要素ごとにインスタンス化する必要があるので、注意してください。

まとめ

今回は構造体をクラスで代替する方法について解説してきましたが、いかがでしたか?

構造体とは、ある対象に関連する項目をまとめて1つのかたまりにしたものです。

C言語などとは違ってJavaでは使用できませんが、クラスで代替することも多いです。

使いこなせるように、この記事を何度も参考にして下さいね!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次