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では使用できませんが、クラスで代替することも多いです。
使いこなせるように、この記事を何度も参考にして下さいね!






