[Java] 접근 제한자

hyunoi·2024년 11월 5일

Java

목록 보기
3/20
post-thumbnail

접근 제한자


말 그대로 어떠한 것의 접근을 제한하기 위해 사용된다.
여기서 접근이란 클래스나 인터페이스, 이것들이 가지고 있는 멤버의 접근을 의미한다.

자바의 접근 제한자에는 네 가지 종류가 있다.

  • public
    외부 클래스가 자유롭게 사용할 수 있도록 한다.
  • protected
    같은 패키지나 자식 클래스만 사용할 수 있도록 한다.
  • private
    외부에서 사용을 하지 못하도록 한다.
  • default
    위 세가지 접근 제한자가 적용되지 않으면 설정된다.
    같은 패키지에 소속된 클래스 내부 에서만 사용 가능하도록 한다.
한정자클래스 내부동일 패키지하위 클래스그 외의 영역
public●●●●
protected●●●X
default●●XX
private●XXX

위의 내용을 적용하여 클래스, 생성자, 필드와 메소드에 각각의 접근 제한자를 적용시켜보자

클래스의 접근 제한


클래스 선언 시에 해당 패키지 내부에서만 사용할 것인지, 아니면 다른 패키지에서도 사용하게 할 것인지를 정해야 한다.

public과 default 두 가지가 클래스 자체의 접근 제한자로 의미가 있고, 나머지 두 개인 protected와 private은 클래스 자체에서는 사용이 불가하다.

default

패키지 내부에서는 사용이 자유롭게 가능하지만 외부 패키지에서는 사용이 불가능하다.

public

패키지 내부, 외부 둘 다 자유롭게 사용이 가능하다.

생성자의 접근 제한


객체를 생성하기 위해서는 new 연산자로 생성자를 호출하는데, 이 생성자 호출에 제한을 둘 수 있다.

 public class ClassName {
 	//public 접근 제한
    public ClassName(···) { ··· }
    
    //protected 접근 제한
    protected ClassName(···) { ··· }
    
    //defalut 접근 제한
    ClassName(···) { ··· }
    
    //private 접근 제한
    private ClassName(···) { ···}
 }
  • public
    모든 패키지에서 아무런 제한 없이 생성자를 호출할 수 있도록 합니다.
  • protected
    default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 생성자를 호출할 수 있도록 합니다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식(child) 클래스라면 생성자를 호출할 수 있습니다.
  • default
    같은 패키지에서는 아무런 제한 없이 생성자를 호출할 수 있으나, 다른 패키지에서는 생성자를 호출할 수 없도록 합니다.
  • private
    동일한 패키지이건 다른 패키지이건 상관없이 생성자를 호출하지 못하도록 제한합니다. 오로지 클래스 내부에서만 생성자를 호출할 수 있고 객체를 만들 수 있습니다.

필드와 메소드의 접근 제한

필드와 메소드를 선언할 때 해당 필드와 메소드의 접근 제한을 둘 수 있다.

  • public
    모든 패키지에서 아무런 제한 없이 필드와 메소드를 사용할 수 있도록 해줍니다.
  • protected
    default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 필드와 메소드를 사용할 수 있도록 합니다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 필드와 메소드를 사용할 수 있습니다.
  • default
    필드와 메소드를 선언할 때 접근 제한자를 생략하면 default 접근 제한을 가집니다. default 접근 제한은 같은 패키지에서는 아무런 제한 없이 필드와 메소드를 사용할 수 있으나 다른 패키지에서는 필드와 메소드를 사용할 수 없도록 합니다.
  • private
    동일한 패키지이건 다른 패키지이건 상관없이 필드와 메소드를 사용하지 못하도록 제한합니다. 오로지 클래스 내부에서만 사용할 수 있습니다.

참고 자료

자바 접근 제한자 종류와 차이점
접근 지정자

0개의 댓글