Lewis's Tech Keep
06/17 TIL (접근 제어자~ getter/setter) 본문
- 생성자는 개체가 생성과 동시에 올바른 상태임을 보장해야 한다.
- 개체는 자신의 상태를 스스로 책임져야 함
- 개체 외부에서 개체의 상태에 직접 접근하는 것을 막아야 한다. -> 접근제어자
- 접근제어자
: public : 누구나 접근 가능
: protected : 자식들만 접근 가능
: default(package) 같은 패키지에 속한 클래스들만 접근 가능
: private : 외부 접근 금지 (내 개체 안에서만 접근 가능)
- private 변경하려고 하면 -> 컴파일 오류가 난다.
- private 의 경우에 호출 주체가 개체 내부라면 가능
- 일반적인 접근 제어자
: 멤버 변수 접근은 메서드를 통해서만 -> 캡슐화, 추상화
- private 메서드 용도
: 클래스 안 코드 중복을 막기 위한 용도
- private 생성자 용도
: 일반적인 용도는 아님.
- 패키지 접근 제어자
: 접근 제어자를 안 붙인 경우 (default)
- getter/setter
: getter 남에게 읽을 수 있게 해 줌.
: setter 변경을 허락하고 싶은 상태가 있을 때
- setter 베스트 프렉티스
: 개체의 상태는 개체 스스로 판단해서 바꿔야 하며 호출자가 자기 마음대로 바꾸는 것은 구조체 생각과 다르지 않다.
: 처음 살아있을 때에도 언제나 이상적
: 새 개체는 여전히 유효해야 함.
: setter는 고민 후에 추가해야 함
- 캡슐화
: 연관된 데이터와 동작을 한 곳에, 외부로부터의 데이터 접근을 최대한 불허
- 추상화
: 추상 자료형 (abstract data type) 관점
: 절차적 데이터 추상화 (procedural data abstraction) 과점
- 추상 자료형
: 클래스 자체가 새로운 자료형
- 절차적 데이터 추상화
: 데이터를 조작하는 대신에 메서드를 호출하겠다.
'Java > 개체지향 프로그래밍 with JAVA' 카테고리의 다른 글
06/20 TIL (OO적 상호작용~ static, 싱글턴, 내포클래스) (0) | 2021.06.20 |
---|---|
06/17, 19 TIL (개체 모델링~) (0) | 2021.06.17 |
06/15 TIL (클래스와 개체) (0) | 2021.06.15 |
06/15 TIL (OOP 필요성) (0) | 2021.06.15 |
06/15 TIL (자바 문법 기본) (0) | 2021.06.15 |