클래스, 객체, 생성자, 오버로딩
7. 정리
- 클래스는 설계도, 객체(인스턴스)는
new로 힙에 만든 실체. 변수에는 주소만 담기므로=로 대입하면 같은 객체를 두 이름이 가리킨다. this는 메서드를 호출한 객체의 주소. 필드와 매개변수 이름이 겹칠 때this.필드로 구분하고,this(...)로 다른 생성자를 첫 줄에서 호출한다.- 생성자는 클래스 이름과 같고 반환 타입이 없으며, 하나라도 직접 만들면 기본 생성자는 사라진다. 객체가 태어나는 순간 유효한 상태를 보장하는 것이 목적.
- 오버로딩은 매개변수의 개수·타입·순서로 구분하며 반환 타입은 기준이 아니다.
static은 클래스에 하나뿐인 멤버로, 객체 없이 쓰지만this와 인스턴스 멤버에 접근할 수 없다. - 자바는 항상 값 전달. 원시 타입은 값이, 참조 타입은 주소가 복사된다. 그래서 필드 변경은 반영되고 재대입은 반영되지 않는다.
다음 레슨 05. 캡슐화에서는 필드를 함부로 건드리지 못하게 막고(private), 검증된 경로(getter/setter)로만 접근하게 하는 설계 원칙과, 아예 바꿀 수 없는 불변 객체·record를 배웁니다.