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_name
및 emp_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인 새 배열을 만든 다음 메서드를 사용하여 데이터를 추가하고 배열에 저장합니다.