IT 개발/Java

[Java] 자바 - 접근제어자 public, private, protected 및 default

KADOSHOLY 2022. 6. 29. 00:23
반응형

 

자바 - 접근제어자 public, private, protected 및 default

 

 

자바에서 접근제어자(access modifier)클래스와 클래스의 멤버(필드, 메소드, 생성자)를 사용할 때, 접근할 수 있는  범위를 지정해 주는 역할을 합니다. 보통 접근제어자 또는 접근지정자라고 부르며 클래스나 클래스 멤버 앞에 붙어있는 public, private, protected 등의 키워드가 바로 접근제어자(접근지정자)입니다. 

 

 

   목차

  1. 클래스의 접근제어자
  2. 클래스 멤버의 접근제어자

 

 

1. 클래스의 접근제어자

 

클래스를 정의할 때 사용할 수 있는 접근제어자는 public과 default(생략) 두가지입니다. 

 

  1. public 클래스 : public을 사용하면, 모든 클래스에서 이 클래스에 접근이 가능합니다. (패키지에 상관없음)
  2. default(생략) 클래스 : 클래스앞에 접근제어자가 없으면 default 클래스로, 같은 패키지 안의 클래스에서만 접근이 가능합니다.

 

public class Book {     // public 클래스
     ...
}


class NoteBook {        // default 클래스
     ...
}

 

 

 

2. 클래스 멤버의 접근제어자

 

클래스 멤버와 함께 사용할 수 있는 접근제어자는 public, private, protected 와 default(생략) 네가지입니다. 

 

  1. public 멤버 : public 은 '공개'를 나타내며, 모든 클래스에서 접근이 가능합니다 (패키지와 상관없음)
  2. private 멤버 : private은 '비공개'를 나타내며, 같은 클래스안에 있는 멤버들만 접근이 가능합니다.
  3. protected 멤버 : 같은 패키지안의 모든 클래스와, 다른 패키지의 자식 클래스에서 접근이 가능합니다.
  4. default(생략) 멤버 : 접근지정자가 없으면 default 멤버로, 같은 패키지안의 클래스에서만 접근이 가능합니다.

 

공개범위는 public  >  protected  >  default(생략)  >  private 순으로 좁아집니다. 

 

 

접근제어자(접근지시자)에 따른 접근범위
접근제어자(접근지시자)에 따른 접근범위 - public, private, protected, default

 

 

public class Book {       // public 클래스

    public int a;          // public 멤버변수(필드)
    private int b;         // private 멤버변수(필드)
    protected int c;       // protected 멤버변수(필드)
    int d;                  // default 멤버변수(필드)
    
    
    public Book() {   }    // public 생성자
    
       
    public void showA() { ... }     // public 멤버함수(메소드)
    private void showB() { ... }    // private 멤버함수(메소드)
    
}

 

반응형