본문 바로가기
Java/기본 개념 및 클래스

[Java] 24. 접근 제어 지시자와 정보 은닉

글: Song hyun 2024. 4. 17.
728x90
반응형

[Java] 24. 접근 제어 지시자와 정보 은닉


1. 접근 제어 지시자

접근 제어(Access Control)은 클래스의 멤버에 접근하는 것을 제어하는 것이다. 일종의 보안장치인 셈이다.

 

접근 제어 지시자(Access Modifier)는 클래스의 외부에서 클래스 내부의 멤버 변수, 메서드, 생성자를
사용할 수 있는지 여부를 지칭하는 키워드이다. 접근 제어의 여부를 결정짓는 것이 접근 제어 지시자라고 할 수 있다. 

 

2. 접근 제어 지시자의 종류
(1) public: 어디에서든 접근이 가능하다. 접근 제어 지시자 내에서 가장 공개적이다. 
(2) default: 같은 패키지 내에서 접근이 가능하다. 

접근 제어 지시자를 작성하지 않으면 default가 할당된다.
(3) protected: 동일 패키지, 상속 관계 클래스에서만 접근이 가능하다.
(4) private: 해당 java 안에서만 접근이 가능하다. 접근 제어 지시자 중 가장 폐쇄적이다.

 

 

 

3. 정보 은닉

 

여기 Bank 클래스가 있다.

Bank 클래스는 고객의 계좌, 은행 정보, 계좌 잔액 등의 변수를 지닌 클래스이다.

만약, 일에 익숙하지 않은 개발자가 실수로 멤버 변수에 접근해서 값을 수정했다고 하자.

 

출금 값만큼 기존 잔액에서 감하는 deposit() 메서드와 접근 제어자 private를 사용한다면,

deposit 메서드 내에 방어적 코드를 구현해 중요한 변수에 에러가 생기는 것을 막을 수 있다.

(ex: if (withdraw<money))

하지만 변수에 직접 접근하여 값을 초기화한다면, 의도치 않은 실수를 발생시킬 수 있다. 

 

이처럼 접근 제어자 private을 사용해, 중요한 변수를 외부에서 접근하지 못하게 하는 것을  정보 은닉이라고 한다.

(=information hiding)

 

*정보 은닉은 객체 지향 패러다임(OOP)의 특성 중 하나인 '캡슐화'(Encapsulation)과 깊은 연관이 있다.

 

 

728x90
반응형