본문 바로가기

불변객체

String클래스 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] String 클래스String은 클래스이다. 따라서 기본형이 아니라 참조형이다.String은 불변 객체이다. 따라서 생성 이후에 절대로 내부의 문자열 값을 변경할 수 없다.String.concat()은 내부에서 새로운String 객체를 만들어서 반환한다. 따라서 불변과 기존 객체의 값을 유지한다.속성(필드)private final char[] value;여기에는 String의 실제 문자열 값이 보관된다. 문자 데이터 자체는 char[]에 보관된다. String클래스는 개발자가 직접 다루기 불편한 char[]을 내부에 감추고 String`클래스를 사용하는 개발자가 편리하게 문자열을 다룰 수 있는 수 있도록 다양한 기능을 제공한다. 그리고 메서드 제공을 넘어서 자바 언어 차원에서도 여러 편의 문법을 제공한다.. 더보기
불변객체 [JAVA | 학습을 위한 자료 | 김영한 자바 중급 1편] 하나의 객체를 여러 변수가 공유하지 않도록 강제로 막을 수 있는 방법이 없다.객체의 상태(객체 내부의 값, 필드, 멤버 변수)가 변하지 않는 객체를 불변 객체(Immutable Object)라 한다.1. 필드를 final로 선언객체의 상태를 변경하지 않기 위해 필드들을 final로 선언한다. final 키워드는 필드가 한번 초기화된 후에는 다시 변경될 수 없음을 보장한다.public class ImmutableClass { private final String name; private final int age;}2. 생성자를 통해 모든 필드를 초기화객체가 생성될 때 모든 필드가 초기화되도록 생성자를 사용한다. 이를 통해 객체가 생성될 때 필요한 값들이 반드시 설정되도록 강제할 수 있다.publ.. 더보기