Java의 구조체

Siddharth Swami 2023년10월12일
  1. 클래스를 사용하여 Java에서 구조체 시뮬레이션
  2. JUnion 플러그인을 사용하여 Java에서 구조체 시뮬레이션
Java의 구조체

프로그래밍에서 구조체는 변수, 메서드, 다양한 유형의 생성자, 연산자 등을 포함하는 구조를 생성하기 위한 키워드입니다. 다른 유형의 데이터를 보유하고 값 유형을 갖는 클래스와 유사합니다. 메모리를 덜 필요로 하는 객체를 생성합니다.

그러나 구조체는 Java에 존재하지 않습니다. Java에서 일부 객체를 수정하여 구조체로 사용할 수 있습니다.

이러한 방법은 아래에서 설명합니다.

클래스를 사용하여 Java에서 구조체 시뮬레이션

구조체를 시뮬레이션하기 위해 클래스의 모든 메서드를 공개할 수 있습니다. 구조체와 클래스의 주요 차이점은 구조체는 기본적으로 public이고 클래스는 private이라는 것입니다. 따라서 클래스를 만들고 해당 메서드와 변수를 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으로 생성했습니다. 그런 다음 코드는 직원 이름과 직원 코드 입력을 받아 EmployeeExample 클래스의 emp_nameemp_code에 값을 각각 저장합니다.

JUnion 플러그인을 사용하여 Java에서 구조체 시뮬레이션

Project JUnion 플러그인을 사용할 수도 있습니다. 여기에서 @Struct 주석을 사용하여 구조체를 생성하는 데 도움이 되는 소프트웨어를 얻습니다. github.io/junion 사이트에서 플러그인을 설치하고 maven 종속성에 배치해야 합니다. 또한 동일한 웹 사이트에서 다운로드할 수 있는 junion.jar이라는 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인 새 배열을 만든 다음 메서드를 사용하여 데이터를 추가하고 배열에 저장합니다.