본문 바로가기

국비필기노트/Java

자바(java)_접근한정자

▶접근한정자

 

-. 멤버변수를 메서드가 객체에 노출되지 않도록 설정하는 기법(은닉성)

-. 객체를 사용하는 측의 실수로 인한 기능의 오작동을 방지하기 위해, 클레스 일부를 숨기는 처리를 말한다.

-. 사용방법

변수 이름이나 메서드 이름 앞에 "접근 한정자"를 지정한다. 

-. 거의 대부분의 멤버변수는 은닉처리를 기본으로 한다. 

-. 종류

public - 모든 곳에서 접근이 가능하다.

           일반적으로 모든 메서드 앞에 명시한다.

           main메서드는 자바의 시작점으로 모든 면에서 접근 가능해야하기때문에 접근을 열어놓은것

private - 클래스 안에서만 사용이 가능하고, 객체를 통해서 접근 할 수 없다.

            일반적으로 모든 멤버변수 앞에 명시한다.

proteted - 현재 클래스 내의 다른 자원이나, 같은 패키지 안에 존재하는 클래스와 하위 클래스에서 접근

               가능하며 잘 사용하지 않는다.

default - 접근 한정자를 명시하지 않은 경우, 현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른

            클래스에서 접근 가능하다. 잘 사용하지 않는다.

 

▶접근한정자 사용이유

-. 객체의 캡슐화를 지켜주기위해

-. 관련있는 데이터 그리고 동작들을 하나로 묶고 요약하여 각 기능들을 하나의 모듈(부품)처럼 활용하여 객체간의 이식성이 높고 독립적인 면을 유지하게 하여 유지보수하기 좋게한다.

-. 객체의 각 속성은 그 객체만의 독립적인 속성임으로 이같은 정보가 노출되는 것은 결코 좋은 것이 아니다.

-. 사용자에게 내부적인 접근을 허용하지않는 대신에 사용의 편의성을 제공해준다.

예를들어 리모컨으로 TV채널을 바꾼다고 할 때 사용자는 버튼을 누르면 채널이 바뀐다는 사실만 알면 된다. 사용자가 TV채널을 바꾸는 원리에 대해서 알 필요가 없음으로 외부사용자에게 필요한 기능만 노출시키고 다른 기능을 은닉화 시킨다.

 

▶접근한정자 예시