가자미의 개발이야기
자바의 접근 수준 지시자와 정보 은닉 본문
a. 정보 은닉
자바의 정보은닉은 외부에서 클래스에 있는 데이터를 다루려 할 때, 데이터 자체에 접근하지 말고,
기능으로 데이터를 활용할 수 있도록, 즉 간접적으로 영향을 미치도록 하는 기능이다.
정보 은닉을 위해서는 인스턴스 변수 앞에 private라는 접근 수준 지시자를 붙여주면 된다.
private를 붙인 변수는 외부에서 직접 접근이 불가능해진다.
다만 메소드의 매개변수를 통한 접근은 가능해진다.
예를 들어 인스턴스명.변수=~~;로 변경은 불가능하지만 class메소드(~~)로는 변경 가능하다.
b. 접근지시자
접근 자유도 순으로
public / protected / default(지시자를 선언하지 않은 경우 포함) / private
이 네가지 지시자를 쉽게 분류할 수 있는 방법은 private 기준으로 왼쪽으로 갈 때마다 한 종류의 접근을 더 가능하게 해준다고 생각하면 편하다.
예를 들어 default는 1군데, protected는 2군데... 이런식으로.
public | protected | default | private | |
클래스에도 사용가능? | 가능 | 불가능(인스턴스에만) | 가능 | 불가능(인스턴스에만) |
인스턴스에 접근 | 외부에서 직접 접근 가능 | 상속 관계 경우 외부 접근 가능 | 동일 패키지일때는 접근 가능. | 클래스 내부에서만 접근 가능. 외부에서 직접 접근 불가능 |
클래스에 접근 | 어디서든 가능. 한 자바파일에 하나만 생성(이름 같아야) |
불가 | 같은 패키지에 있는 클래스 내에서만 인스턴스 생성 가능 | 불가 |
'Java > 자바 기본 문법' 카테고리의 다른 글
자바의 스태틱이란 뭘까? (0) | 2021.01.05 |
---|---|
자바의 캡슐화란 무엇일까? (0) | 2021.01.05 |
자바의 패키지는 왜 사용할까? (0) | 2021.01.05 |
자바의 클래스 패스 (0) | 2021.01.05 |
자바의 문자열과 생성자 (0) | 2021.01.03 |