🌳 접근 제어자(Access Modifier)
1. 접근 제어자 개념
- 멤버 등에 사용되며 해당 요소를 외부에서 사용할 수 있게 할 것인지를 제어한다.
- 접근 제어자의 종류는 public, protected, private, default가 있다.
- 'OOPs is A P.I.E' 에서 Encapsulation(은닉화)와 연관있는 개념이다.
🔑 은닉화(Encapsulation)
란?
- 클래스의
멤버변수
나 메서드
가 객체에 노출되지 않도록 설정하는 기법
- 객체를 사용하는 측의 실수로 인한 기능의 오작동을 방지하기 위해, 클래스의 일부를 숨기는 처리를 말한다.
2. 적용 방법
- 변수의 이름이나 메서드 이름 앞에
접근 한정자
를 지정한다.
- public
➡ 모든 곳에서 접근 가능하다.
➡ 일반적으로 모든 메서드 앞에 명시한다.
- private
➡ 클래스 안에서만 사용가능
하고, 객체를 통해 접근할 수 없다.
➡ 일반적으로 모든 멤버변수 앞에 명시한다.
- protected
➡ 현재 클래스 내의 다른 자원이나, 같은 패키지안에 존재하는 클래스와 하위 클래스에서 접근가능하다.
➡ 잘 사용하지 않는다.
- default
➡ 접근 한정자를 명시하지 않은 경우
➡ 현재 클래스 내의 다른 자원이나 동일 패키지 내의 다른 클래스에서 접근 가능하다.
➡ 잘 사용하지 않는다.
3. 클래스에 접근 한정자를 지정한 경우
- public
➡ 객체 생성이 가능하다.
➡ 서로 다른 소스코드에 정의된 클래스끼리도 객체 생성이 가능하다.
- private ➡ 클래스에 적용할 수 없다.
- protected ➡ 클래스에 적용할 수 없다.
- default
➡ 동일한 소스코드(*.java)에 정의된 클래스끼리만
객체로 생성 가능하다.
4. 자바빈즈(javaBeans)
- 자바언어에서 사용하는 복합적 데이터 표현의 최소 단위로서, 재사용이 가능한 컴포넌트(구성요소)를 생성할 수 있다.
- 자바빈즈 클래스로서 작동하기 위해서, 객체 클래스는 명명법, 생성법 그리고 행동에 관련된 일련의 관례를 따라야만 한다.