[2022.07.17] 접근제어자 public, protected, default, private 특징

REASON·2022년 7월 17일
0

JAVA

목록 보기
1/5

public, protected, default, private는 접근 제어자라고 칭한다.

접근 제어자는 왜 사용할까?

은행을 예시로 들어보면, 은행 창구의 직원과는 고객이 접근할 수 있지만, 은행의 금고와 같은 것은 특별한 권한을 가진 사람만이 접근할 수 있도록 허용되어 있다. 이게 바로 public과 private이다.

만약, private에 아무나 접근이 가능했다면 금고의 의미가 없을 것이고 public에는 아무나 접근이 불가능했다면 창구의 직원은 의미가 없을 것이다.

객체에서도 마찬가지의 역할을 한다.

class 멤버 접근 제어자

  1. pulbic
  2. protected
  3. default
  4. private

public

public은 누구든지 자유롭게 접근이 가능하다.

protected

같은 패키지나 상속 받은 자식 클래스(다른 패키지에 있더라도)가 사용할 수 있다.

default

접근 제어자를 작성하지 않았을 때를 의미한다. 접근 제어자가 없는 메소드의 경우 같은 패키지에 있어야 한다.

private

private로 선언된 것은 해당 클래스 내부에서는 사용할 수 있지만, 외부에서는 사용할 수 없다. 사용하려고 하면 오류가 발생한다.
의도하지 않은 방법으로 외부에서 내부적인 무언가를 바꾸려고 하는 것을 막을 수 있다.

접근 제어자 - 접근 범위

publicprotecteddefaultprivate
같은 패키지 & 같은 클래스OOOO
같은 패키지 & 상속 관계OOOX
같은 패키지 & 상속 XOOOX
다른 패키지 & 상속 관계OOXX
다른 패키지, 상속 XOXXX

즉, public은 모든 경우에 다 사용할 수 있고 protected는 같은 패키지 또는 다른 패키지일 때 상속관계라면 사용할 수 있다.
default는 같은 패키지인 경우에만 접근 할 수 있고, private는 같은 패키지면서 같은 클래스일 때만 접근할 수 있다.

클래스 접근 제어자로는 default와 public이 있다.

접근 제어자가 public인 클래스는 다른 패키지 클래스에서도 사용할 수 있고 default는 같은 패키지에서만 사용이 가능하다.
class에 접근 제어자를 붙이지 않은 경우에 default 가 된다.


참고 자료
오픈 튜토리얼스 - 자바

0개의 댓글