English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
불변 클래스/값을 변경할 수 없는 클래스/객체. 예를 들어, 문자열은 Java에서 불변입니다. 즉, Java에서 문자열 값을 생성하면 수정할 수 없습니다. 수정을 시도해도 중간 문자열을 생성하고 그 값을 원래 텍스트에 할당합니다.
초기화 후 변경할 수 없는 객체를 생성할 필요가 있을 때마다 불변 객체를 정의할 수 있습니다. 불변 객체를 생성하는 특정 규칙은 없으며, 초기화 후 클래스 필드에 대한 접근을 제한하는 것이 그 생각입니다.
다음 Java 프로그램은 불변 클래스의 생성을 보여줍니다. 여기서는 이름과 나이 두 개의 인스턴스 변수가 있으며, 이들을 값을 할당할 수 없는 생성자가 있습니다.
final public class Student { private final String name; private final int age; public Student(String name, int age){ this.name = name; this.age = age; } public String getName() { return this.name; } public int getAge() { return this.age; } public static void main(String[] args){ Student std = new Student("Krishna", 29); System.out.println(std.getName()); System.out.println(std.getAge()); } }
출력 결과
Krishna 29
아니요, 모든 속성이 final 속성을 가져야 만 불변 객체를 생성할 수는 없습니다. 불변 객체에서는 사용자가 클래스의 변수를 수정할 수 있지 않도록 해야 합니다.
이를 통해 변수를 private로 설정하고 설정 메서드를 제공하지 않으면 이를 수정할 수 있습니다.
public class Sample{ String name; int age; public Sample(){ this.name = name; this.age = age; } public String getName(){ return this.name; } public int getAge(){ return this.age; } }