Java 中的結構體

Siddharth Swami 2023年1月30日 2021年10月2日
  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 的新陣列,然後使用這些方法新增資料並將它們儲存在陣列中。