1. 은닉성이란?
- 멤버변수나 메서드가 객체에 노출되지 않도록 설정하는 기법
- 객체를 사용하는 측의 실수로 인한 기능의 오작동을 방지하기 위해, 클래스의 일부를 숨기는 처리를 말한다.
2. 적용방법
3. getter, setter
- 멤버변수가 은닉된 형태로 선언된 경우 프로그램의 가장 근본적인 목적인 데이터에 접근하는 방법이 사라지므로, 메서드를 통하여 간접적으로 접근하는 방법이 마련되어야 한다.
- getter, setter 는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메서드들을 의미하는 용어이다.
- getter : 은닉된 멤버변수의 값을 리턴하기 위한 메서드
- setter : 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드
getter setter
String userName String getUserName() void setUserName(String userName)
int userAge int getUserAge() void setUserAge(int userAger)
-> get, set 접두사 뒤에 변수이름을 첫 글자가 대문자인 형태로 명시
-> getter 는 연결된 멤버변수의 데이터 타입을 리턴형으로 명시
-> setter 는 연결된 멤버변수의 데이터 타입을 파라미터형으로 명시
4. 클래스와 접근 한정자
- 클래스에 접근 한정자를 지정한 경우
- public
-> 객체 생성이 가능하다.
-> 서로 다른 소스코드에 정의된 클래스끼리도 객체 생성이 가능하다.
- private
-> 클래스에 적용할 수 없다.
- protected
-> 클래스에 적용할 수 없다.
- default
-> 동일한 소스코드에 정의된 클래스끼리만 객체로 생성 가능하다.
(지금까지의 예제 형태)
5. 클래스의 분리
- 하나의 소스코드에서 프로그램의 모든 기능을 구현하게 되면 유지보수에 비효율적이므로, 기능단위로 소스코드를 분리해야 한다.
- 소스코드가 분리된 클래스끼리는 public이 명시되어야만 서로 객체 생성이 가능하다.
- 일반적으로 클래스 정의에는 public 접근 한정자만 사용한다.
- 하나의 소스코드에는 하나의 public 클래스만 존재할 수 있다.