기본형과 참조형의 공유
기본형 : 하나의 값을 여러 변수에서 절대로 공유하지 않음
참조형 : 하나의 객체를 참조값을 통해 여러 변수에서 공유 할 수 있음
공유 참조와 사이드 이펙트
사이드 이펙트 : 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것
>> 보통 부정적인 의미, 특정 부분에서 발생한 변경이 의도치 않게 다른 부분에 영향
>> 디버깅이 어려워지고 코드의 안정성 저하
하나의 객체를 여러 변수가 공유하지 않도록 막을 방법이 없음!!
>> 공유된 객체의 값을 변경하지 못하게 하자!!
불변 객체(Immutable Object)
객체의 상태(객체 내부의 값, 필드, 멤버 변수)기 변하지 않는 객체
>> 불변 클래스로 만들어서 참조하는 인스턴스의 값을 변경하려면 새로운 인스턴스를 생성해서 할당
불변이라는 단순한 제약을 사용해 사이드 이펙트라는 큰 문제를 막자!!
불변 객체의 메서드가 "with"로 이름 지어진 경우
>> 그 메서드가 지정된 수정사항을 포함하는 객체의 새 인스턴스를 반환
'Java' 카테고리의 다른 글
Java / 래퍼, Class 클래스 (0) | 2025.02.24 |
---|---|
Java / String 클래스 (0) | 2025.02.24 |
Java / Object 클래스 (0) | 2025.02.24 |
Java / 다형성과 설계 (0) | 2025.02.23 |
Java / 추상 클래스와 인터페이스 (0) | 2025.02.23 |