[프로그래머스] JAVA 기초 수업 필기 (접근제한자)

lobby_RoGo·2023년 11월 13일

JAVA 필기

목록 보기
36/48

접근제한자

클래스와 클래스 멤버를 어디까지 접근 허용하는지 제한하는 것.

왜 필요할까?

Person 클래스는 사람이라는 객체임. 누구인지를 보여주고자 하는 name 이란 필드를 사용하는데, 이 name 필드의 객체가 외부에 공개되어있고, 쉽게 접근할 수 있다면???

"로비로고" 란 사람으로 만들고 얼마든지 딴 이름으로 바꿀수 있다면, Person 객체를 믿을수가 없어짐.

이처럼 정보를 은닉하기 위한 방법으로 접근제한자를 사용한다.

접근제한자 종류

접근제한 강도

public < protected < default < private

public

  • 어디서든 호출 가능 (클래스 내부, 같은 패키지, 다른 패키지)
  • 클래스, 필드, 메소드 선언에서 사용가능

protected

  • 같은 패키지 안에서만 호출 가능
  • 해당 클래스의 자식 클래스이면 호출 가능 (다른 패키지에 있어도 자식 클래스는 가능)
  • 필드, 메소드, 생성자 선언에 사용 (클래스 선언에서는 사용하지 않음)

default

  • 접근 제한 설정을 하지 않은 기본 상태
  • 같은 패키지 안에서는 호출 가능

private

  • 무조건 클래스 내부에서만 호출 가능
  • 필드, 메소드, 생성자 선언에 사용 (클래스 선언에서는 사용하지 않음)

private 정상 작동 예시

private 에러 예시

내용 정리

접근 제한자 : 클래스와 클래스 멤버에 대해 접근을 어디까지 허용하는지 제한함

public

  • 어디서든 접근 가능
  • 클래스, 필드, 메소드 선언에서 사용

protected

  • 같은 패키지 안이거나 자식 클래스면 호출 가능
  • 필드, 메소드, 생성자 선언에 사용

default

  • 접근 제한 설정을 하지 않은 기본 상태
    -= 같은 패키지 안에서는 호출 가능

private

  • 클래스 내부에서만 호출 가능
  • 필드, 메소드, 생성자 선언에 사용
profile
한번 해보자구!

0개의 댓글