Java の構造体

Siddharth Swami 2023年10月12日
  1. Java でクラスを使用して構造体をシミュレートする
  2. Java で JUnion プラグインを使用して構造体をシミュレートする
Java の構造体

プログラミングでは、構造体は、変数、メソッド、さまざまなタイプのコンストラクター、演算子などを含む構造体を作成するためのキーワードです。これは、さまざまなタイプのデータを保持し、値タイプを持つクラスに似ています。必要なメモリが少ないオブジェクトを作成します。

ただし、構造体は Java には存在しません。Java でいくつかのオブジェクトを変更して、それらを構造体として使用することができます。

これらの方法については、以下で説明します。

Java でクラスを使用して構造体をシミュレートする

クラス内のすべてのメソッドをパブリックにして、構造体をシミュレートできます。構造体とクラスの主な違いは、構造体はデフォルトでパブリックであり、クラスはプライベートであるということです。したがって、クラスを作成し、そのメソッドと変数を public に変更すると、構造体と同様に機能します。

このロジックは、次の例で実装します。

class EmployeeExample {
  private String emp_name;
  private int emp_code;

  // constructor
  public Employee(String emp_name, int emp_code) {
    this.emp_name = emp_name;
    this.emp_code = emp_code;
  }

  // getter
  public String getName() {
    return emp_name;
  }
  public int getCode() {
    return emp_code;
  }

  public static void main(String[] args) {
    EmployeeExample[] array = new EmployeeExample[2]; // new stands for create an array object
    array[0] = new EmployeeExample("Ram", 1); // new stands for create an employee object
    array[1] = new EmployeeExample("Shyaam", 2);
    for (int i = 0; i < array.length; i++) {
      System.out.println(array[i].getName() + " " + array[i].getCode());
    }
  }
}

出力:

Ram 1
Shyaam 2

上記の例では、コンストラクターと getName() および getCode() メソッドをパブリックとして作成しました。次に、コードは従業員名と従業員コードの入力を受け取り、値をそれぞれ emp_nameemp_code のクラス EmployeeExample に格納します。

Java で JUnion プラグインを使用して構造体をシミュレートする

ProjectJUnion プラグインを使用することもできます。ここでは、@Struct アノテーションを使用して構造体を作成するのに役立つソフトウェアを入手します。プラグインをサイト github.io/junion からインストールし、Maven 依存関係に配置する必要があります。また、同じ Web サイトからダウンロードできる jar ファイル名 junion.jar を追加する必要があります。

@Struct アノテーションは、Java で構造体を作成するのに役立つメソッドで構成されています。

次の例は、上記の方法を示しています。

import theleo.jstruct.Struct;

public class Struct {
  @Struct
  public static class Emp_Name {
    public String first_Name, middle_Name, last_Name;
  }

  public static void main(String[] args) {
    Emp_Name[] array = new Emp_Name[2];
    array[0].first_Name = "Ram";
    array[0].middle_Name = "";
    array[0].last_Name = "Sharma ";
    System.out.println(
        "Name : " + array[0].first_Name + " " + array[0].middle_Name + " " + array[0].last_Name);
  }
}

出力:

Name : Ram  Sharma

ここでは、構造体として機能し、いくつかのメソッドで構成される静的パブリッククラス Emp_Name を作成します。次に、メインクラスで、長さ 2 の新しい配列を作成し、メソッドを使用してデータを追加し、それらを配列に格納しました。