관리 메뉴

보리차

chapter 09 정보 은닉 그리고 캡슐화 본문

Java

chapter 09 정보 은닉 그리고 캡슐화

보리콩 2022. 1. 25. 20:39

자바에서 말하는 정보는 클래스의 인스턴스 변수를 의미한다. 정보를 은닉한다는 것은 인스턴스 변수를 숨긴다는 뜻

 

정보를 은닉해야 하는 이유

인스턴스 변수에 잘못된 값이 저장되는 일을 방지하거나 값의 종류와 범위를 지정하고 싶을 때가 있다. 이런 경우 인스턴스 변수에 직접 접근하게 되면 잘못된 접근이 발생할 수 있다. 

 

정보의 은닉을 위한 private 선언

인스턴스 변수의 앞에 private 선언을 추가한다.

private double rad = 0;		// 클래스 내부 접근만 허용

 이렇게 인스턴스 변수를 private으로 선언한 경우 두 메소드를 제공해야 한다.

public void setRad() {...}		// rad에 값을 저장(수정)
public double getRad() {...}		// rad에 저장된 값을 반환

값의 설정과 참조를 위한 메소드들이다.

게터(Getter)

- 인스턴스 변수의 값을 참조하는 용도로 정의된 메소드

- 변수의 이름앞에 get을 붙인다.

세터(Setter)

- 인스턴스 변수의 값을 설정하는 용도로 정의된 메소드

- 변수의 이름앞에 set을 붙인다.

 

 

접근 수준 지시자(Access-level Modifiers)

 클래스의 정의

    - public: 어디서든 인스턴스 생성이 가능

    - default: 동일 패키지로 묶인 클래스 내에서만 인스턴스 생성을 허용

 

 클래스의 인스턴스 변수와 메소드

    - public: 어디서든 접근 가능

    - protected: 상속 관계에 있는 다른 클래스에서 접근 가능

    - private: 클래스 내부에서만 접근 가능

    - default: 동일 패키지로 묶인 클래스 내에서만 접근 가능