정처기 감자정처기 감자
Java기초

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

Java 접근제어자 (public, private, protected, default)

코딩Java
읽는데 5분 소요
처음 쓰인 날: 2026-02-20
마지막 수정일: 2026-02-20
조회수: —

요약

Java 접근제어자(public, private, protected, default)의 개념과 접근 범위를 알아봅니다. 캡슐화의 원리와 정보처리기사 실기에서 자주 나오는 접근제어자 패턴을 정리합니다.

접근제어자 핵심 정리

접근제어자같은 클래스같은 패키지자식 클래스외부 전체
publicOOOO
protectedOOOX
default (생략)OOXX
privateOXXX

여기서 같은 패키지란, 각 Java 파일 맨 위에 적는 package 선언이 동일한 클래스들을 뜻합니다. 예를 들어 package com.gamja;로 선언된 클래스끼리는 같은 패키지이고, package com.other;로 선언된 클래스는 다른 패키지입니다. 시험에서 패키지 범위를 묻는 문제는 출제된 적이 없으므로, 이 개념은 참고만 하세요.


접근제어자란?

접근제어자(Access Modifier) 는 클래스, 필드, 메서드에 대한 접근 범위를 제한하는 키워드입니다.

쉽게 말하면, "누가 이 데이터/기능을 사용할 수 있는가" 를 정하는 것입니다.

java
코드 하이라이팅 중…

접근 범위를 넓은 순서대로 정리하면 다음과 같습니다.

text
코드 하이라이팅 중…

public

어디서든 접근 가능한 가장 개방적인 접근제어자입니다.

java
코드 하이라이팅 중…

인터페이스를 구현할 때, 메서드 앞에 반드시 public을 붙여야 합니다. 인터페이스의 메서드는 외부에서 호출해야 하기 때문입니다.


private

같은 클래스 안에서만 접근 가능한 가장 제한적인 접근제어자입니다.

java
코드 하이라이팅 중…

private은 외부에서 직접 접근할 수 없기 때문에, public 메서드(getter/setter)를 통해 간접적으로 접근합니다. 이것이 바로 캡슐화입니다.

private 생성자 = 외부에서 객체 생성 차단
생성자를 private으로 선언하면 외부에서 new로 객체를 만들 수 없습니다. 싱글톤 패턴에서 이 방식을 사용합니다. 자세한 내용은 싱글톤 패턴 페이지를 참고하세요.

default (package-private)

접근제어자를 생략하면 default입니다. 같은 패키지에서만 접근 가능합니다.

java
코드 하이라이팅 중…
default는 키워드가 아닙니다
default 접근제어자는 아무것도 쓰지 않는 것입니다. Java에서 default라는 키워드는 switch문에서 사용하는 것이고, 접근제어자의 default와는 다릅니다.

protected

같은 패키지 혹은 자식 클래스에서 접근 가능합니다.

java
코드 하이라이팅 중…

protected는 상속 관계에서 의미가 있습니다. 부모 클래스의 필드나 메서드를 자식 클래스에서 사용할 수 있도록 허용하면서, 외부에는 공개하지 않을 때 사용합니다.


시험에서 자주 나오는 패턴

접근제어자 관련 시험 포인트
- private 필드 + public getter/setter = 캡슐화 패턴 - enum의 생성자는 항상 private (명시하지 않아도 자동으로 private) - 인터페이스 구현 시 메서드에 반드시 public을 붙여야 함

private 필드 + public 메서드 (캡슐화)

시험에서 가장 자주 나오는 접근제어자 패턴입니다.

java
코드 하이라이팅 중…

필드를 private으로 감추고 public 메서드로만 접근하게 하면, 잘못된 값이 들어오는 것을 막을 수 있습니다.


왜 접근을 제한할까? (캡슐화)

외부에서 데이터를 직접 수정하면 안 되는 경우가 있습니다.

java
코드 하이라이팅 중…

이처럼 데이터를 보호하고, 정해진 방법으로만 접근하게 하는 것을 캡슐화(Encapsulation) 라고 합니다. 캡슐화는 객체지향 프로그래밍의 핵심 원칙 중 하나입니다.

연습 문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)
후수학습(1개)
  • Java 상속(extends), super, this()와 필드 하이딩
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999