Lewis's Tech Keep

06/17 TIL (접근 제어자~ getter/setter) 본문

Java/개체지향 프로그래밍 with JAVA

06/17 TIL (접근 제어자~ getter/setter)

Lewis Seo 2021. 6. 17. 19:56

 - 생성자는 개체가 생성과 동시에 올바른 상태임을 보장해야 한다.

 

- 개체는 자신의 상태를 스스로 책임져야 함

 

 - 개체 외부에서 개체의 상태에 직접 접근하는 것을 막아야 한다. -> 접근제어자

 

 - 접근제어자

 : public : 누구나 접근 가능

 : protected : 자식들만 접근 가능

 : default(package) 같은 패키지에 속한 클래스들만 접근 가능

 : private : 외부 접근 금지 (내 개체 안에서만 접근 가능)

 

 - private 변경하려고 하면 -> 컴파일 오류가 난다.

 - private 의 경우에 호출 주체가 개체 내부라면 가능

 

 - 일반적인 접근 제어자

 : 멤버 변수 접근은 메서드를 통해서만 -> 캡슐화, 추상화

 

 - private 메서드 용도

 : 클래스 안 코드 중복을 막기 위한 용도

 

 - private 생성자 용도

 : 일반적인 용도는 아님.

 

 - 패키지 접근 제어자

 : 접근 제어자를 안 붙인 경우 (default)

 

 - getter/setter

 : getter 남에게 읽을 수 있게 해 줌.

 : setter 변경을 허락하고 싶은 상태가 있을 때

 

 - setter 베스트 프렉티스

 : 개체의 상태는 개체 스스로 판단해서 바꿔야 하며 호출자가 자기 마음대로 바꾸는 것은 구조체 생각과 다르지 않다.

 : 처음 살아있을 때에도 언제나 이상적

 : 새 개체는 여전히 유효해야 함.

 : setter는 고민 후에 추가해야 함 

 

 - 캡슐화

 : 연관된 데이터와 동작을 한 곳에, 외부로부터의 데이터 접근을 최대한 불허

 

 - 추상화

 : 추상 자료형 (abstract data type) 관점

 : 절차적 데이터 추상화 (procedural data abstraction) 과점

 

 - 추상 자료형

 : 클래스 자체가 새로운 자료형

 

- 절차적 데이터 추상화

 : 데이터를 조작하는 대신에 메서드를 호출하겠다.

Comments