1. 은닉성이란?
- 멤버변수나 메서드가 객체에 노출되지 않도록 설정하는 기법
- 객체를 사용하는 측의 실수로 인한 기능의 오작동을 방지하기 위해, 클래스의 일부를 숨기는 처리를 말한다.
2. 적용방법
- 변수의 이름이나 메서드 이름 앞에 "접근 한정자"를 지정한다.
- public : 모든 곳에서 접근가능하다.
일반적으로 모든 메서드 앞에 명시한다.
- private : 클래스 안에서만 사용가능, 객체를 통해 접근할 수 없다.
일반적으로 모든 멤버변수 앞에 명시한다.
- protected : 현재 클래스 내의 다른 자원이나 같은 패키지 안에 존재하는
클래스와 하위 클래스에서 접근가능하다.
자주 사용되지는 않는다.
- default : 접근한정자를 명시하지 명시하지 않은 경우.
현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른 클래스에서 접근가능하다.
자주 사용되지는 않는다.
3. getter, setter
-
멤버변수가 은닉된 형태로 선언된 경우, 프로그램의 가장 근본적인 목적인 데이터에 접근하는 방법이 사라지게 된다. 메서드를 통한 간접적으로 접근하는 방법이 마련되어야한다.
-
getter, setter는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메서드들을 의미하는 용어이다.
1) getter : 은닉된 멤버변수의 값을 리턴하기 위한 메서드
2) setter : 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드
String userName
- getter : String getUserName()
- setter : void setUserName (String userName)
int userAge
- getter : int getUserAge()
- setter : void setUserAge (int userAge)
-
"get","set" 접두사 뒤에 변수이름을 첫 글자가 대문자인 형태로 명시
-
getter는 연결된 멤버변수의 데이터 타입을 리턴형으로 명시
-
setter는 연결된 멤버변수의 데이터 타입을 파라미터형으로 명시
-
이클립스 툴을 통해 손쉽게 작성가능하다.
커서를 class후에 넣은후 마우스 오른쪽클릭 - source - generate getters and setters
*생성자도 마찬가지로 쉽게 이클립스툴을 통해 작성가능.
source - generate conductor using fields
*toSpring도 이클립스 툴을 통해 작성가능
source - generate toString()...
4. 클래스에 접근 한정자를 지정한 경우
- public : 객체 생성이 가능하다.
서로 다른 소스코드에 정의된 클래스끼리도 객체 생성이 가능하다.
- private: 클래스에 적용할 수 없다.
- protected : 클래스에 적용할 수 없다
- default: 동일한 소스코드에 정의된 클래스끼리만 객체로 생성가능하다.
지금까지의 예제형태이다.
5. 자바빈즈(javaBeans)
- 자바언어에서 사용하는 복합적 데이터 표현의 최소 단위로서, 재사용이 가능한 컴포넌트(구성요소)를 생성할 수 있다.
- 자바빈즈 클래스로서 작동하기 위해서, 객체 클래스는 명명법, 생성법, 그리고 행동에 관련된 일련의 관례를 따라야만 한다.