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

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

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

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


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

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

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

構造体とは?

構造体とは、ある対象に関連する項目をまとめて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では使用できませんが、クラスで代替することも多いです。

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

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー