불변객체와 Setter

자라나는 ㅇㅅㅇ개발자·2023년 12월 12일
0

TIL

목록 보기
119/126

불변 객체(Immutable Object) : 객체가 생성된 후에 그 상태를 변경할 수 없는 객체.

한 번 객체가 생성되면 내부 상태를 수정하거나 변경할 수 없다.
불변 객체는 객체 지향 프로그래밍에서 많은 이점을 제공한다.
ex) Integer, String


기본 타입(Primitive type)
기본 타입은 값을 복사한 것이기 때문에 a의 값이 변하지 않음

int a = 10;
int b = a;
b = 20;

// a = 10
// b = 20

객체 타입
객체 타입은 같은 참조를 전달하기 때문에 의도치 않았던 a의 값도 같이 변함

Animal animal1 = new Animal("Dog");
Animal animal2 = animal1;
animal2.setName("Cat");

// animal1 = Cat
// animal2 = Cat

-> Setter 사용을 지양해야 하는 이유
생성자 또는 Builder를 사용하여 값을 초기화하는 방법으로 해결

0개의 댓글