Java 中的結構體

Siddharth Swami 2023年10月12日
  1. 使用類模擬 Java 中的結構體
  2. 使用 JUnion 外掛模擬 Java 中的結構體
Java 中的結構體

在程式設計中,結構體是用於建立包含變數、方法、不同型別的建構函式、運算子等的結構的關鍵字。它類似於持有不同型別資料並具有值型別的類。它建立需要較少記憶體的物件。

但是,Java 中不存在結構體。我們可以修改 Java 中的一些物件,將它們用作結構體。

下面討論這些方法。

使用類模擬 Java 中的結構體

我們可以將類中的所有方法設為 public 來模擬結構。結構體和類之間的主要區別在於結構體​​預設是公共的,而類是私有的。因此,如果我們建立一個類並將其方法和變數更改為 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() 方法為 public。然後,程式碼接受員工姓名和員工程式碼輸入,並將值分別儲存在 emp_nameemp_code 中的 EmployeeExample 類中。

使用 JUnion 外掛模擬 Java 中的結構體

我們還可以使用 Project JUnion 外掛。在這裡,我們獲得了幫助我們使用@Struct 註釋建立結構體的軟體。我們必須從站點 github.io/junion 安裝外掛並將其放在 maven 依賴項中。此外,我們必須新增 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 的新陣列,然後使用這些方法新增資料並將它們儲存在陣列中。