접근제어자

위키원
greenwood26 (토론 | 기여)님의 2020년 8월 11일 (화) 10:32 판 (특징)
이동: 둘러보기, 검색

접근제어자란 자바 클래스에서 멤버들이 노출되는 것을 막기 위해 접근을 제한해주는 것을 말한다.[1]

개요

접근제어자는 객체지향언어(Object-oriented Programming)의 3대요소 중 하나로 말 그대로 접근을 제어하기 위해 사용하는 것이다. 모두가 접근 가능한 변수나 메소드는 제약 조건 없이 쉽게 데이터가 변경이 가능하기 때문에 데이터를 안정하게 변경하기 위해 접근을 할 수 있는 대상을 지정해 줄 때 사용한다.[2]

특징

public

모든 접근을 허용한다. 외부의 모든 클래스 및 생성자, 메소드, 필드로부터 접근을 완전히 허용하고, 다른 개발자들에게 라이브러리처럼 공유하려고 할때 사용한다.[3]

protected

같은 패키지(폴더)에 있는 객체와 상속관계의 객체들만 허용한다. 클래스 선언자체가 불가능하며 같은 패키지에 속해있는 클래스에서 생성자와 메소드, 필드(객체)만 호출 할 수 있고, 다른 패키지에 있는 생성자, 메소드, 필드는 호출하지 못하지만 상속관계에 있는 클래스라면 예외로 호출이 가능하다.[3]

default

같은 패키지(폴더)에 있는 객체들만 허용한다. 'friendly'라고도 부르며 다른 접근제어자를 선언하지 않았다면 기본적으로 선언되는 제어자이다. 다른 패키와의 클래스 선언과 생성자/메소드/필드의 호출이 불가능해지며 동일 패키지안에서는 모든 것이 허용된다.[3]

private

현재 객체 내에서만 허용한다.


접근 여부[4]
종류 동일 클래스 하위 클래스 동일 패키지 외부 패키지(클래스)
private O X X X
(default) O X O X
protected O O O X
public O O O O


각주

  1. Gyrfalcon, <JAVA 접근 제한자 (public, private, protected, defalult)>, <<개인 블로그>>, 2014-02-27
  2. KOU, <접근제한자, 접근제어자...>, <<개인 블로그>>, 2020-06-04
  3. 3.0 3.1 3.2 AraGrooveit, <자바(Java) 접근 제한자 private/ protected/ public / default>, <<개인 블로그>>, 2015-11-10
  4. 규밍, <[java 접근제한자 public, private, protected, default]>, <<개인 블로그>>, 2019-05-21

참고자료

같이보기