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

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

요약

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

접근제어자 핵심 정리

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

접근제어자란?

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

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

java
코드 하이라이팅 중...

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

text
코드 하이라이팅 중...

public

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

java
코드 하이라이팅 중...

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


private

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

java
코드 하이라이팅 중...

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


default (package-private)

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

java
코드 하이라이팅 중...

protected

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

java
코드 하이라이팅 중...

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



시험에서 자주 나오는 패턴

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

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

java
코드 하이라이팅 중...

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


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

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

java
코드 하이라이팅 중...

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