접근 제어자

멍빼미·2024년 3월 7일

목차
1. public
2. protected
3. default
4. private

접근 제어자

  • 접근 제어자는 해당하는 클래스나 멤버에 외부에서 접근하지 못하도록 제한하는 역할을 한다.
  • 외부로부터 데이터를 보호하고 외부에 불필요한 부분을 감추기 위해서 사용된다.
  • public > protected > default > private 순으로 public이 접근 범위가 넓고 private가 가장 작다.

public

  • 클래스, 필드, 생성자, 메서드에 적용할 수 있다.
  • 접근제한이 없다. 단어 그대로 외부에서 자유롭게 접근할 수 있다.
  • 하나의 소스코드 파일에서 파일명과 동일한 public class 하나만 가질 수 있다.

잘못된 예시

하나의 소스 코드에 2개의 public class가 존재할 경우

public class Sample1 {}
public class Sample2 {}

public 클래스가 파일명과 다를 경우

Sample1.java

public class Sample2 {}

그 외에도 대소문자 구별을 해야한다.

protected

  • 필드, 생성자, 메서드에 적용할 수 있다.
  • 패키지와 상관없이 해당 클래스와 상속관계에 있는 자손 클래스라면 접근이 가능하며, 같은 패키지 내에서도 접근 가능하다.

default

  • 클래스, 필드, 생성자, 메서드에 적용할 수 있다.
  • 같은 패키지 내에서만 접근이 가능하다.
  • 접근 제어자를 사용하지 않을 시 기본적으로 default가 적용된다.

예시

default class Sample {} //잘못된 예시
class Sample {} //올바른 예시

접근제어자를 생략 시 default 접근 제어자가 적용되는 것이지 키워드로 사용하지 않는다.

private

  • 필드, 생성자, 메서드에 적용할 수 있다.
  • 같은 클래스에서만 접근 가능하다.
  • 만약 외부에서 접근하려면 해당 클래스에 getter,setter 메서드를 만들어 접근해야 한다.
profile
멍한 올빼미

0개의 댓글