1일1복습

[자바] 접근제어자

nayeonee__ 2024. 5. 11. 01:14

접근제어자 - access modifier

  • 클래스와 클래스멤버(필드, 메소드, 생성자)를 사용할 때, 접근할 수 있는 범위를 지정
  • 접근제어자 or 접근 지정자 라고 불림
  • public, private, protected, (default)

 

1. 클래스의 접근 제어자

  • 클래스를 정의할 때 사용할 수 있는 접근제어자는 public과 default 이다.
    • public 클래스 : 모든 클래스에서 해당 클래스에 접근이 가능하다. (패키지 상관없음)
    • default 클래스 : 클래스 앞에 접근제어자가 없으면 default 클래스로, 같은 패키지 안의 클래스에서만 접근이 가능하다.
public class Fruit {     // public 클래스
     ...
}

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

 

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

  • 클래스 멤버와 함께 사용할 수 있는 접근제어자는 public, private, protected, default 로 총 4가지이다.
    • public 멤버 : ‘공개’를 나타내며, 모든 클래스에서 접근이 가능하다. (패키지 상관없음)
    • protected 멤버 : 같은 패키지안의 모든 클래스와, 다른 패키지의 자식 클래스에서 접근이 가능하다.
    • default 멤버 : 접근 지정자가 없으면 default 멤버로, 같은 패키지안의 클래스에서만 접근이 가능하다.
    • private 멤버 : '비공개’를 나타내며, 같은 클래스 안에 있는 멤버들만 접근이 가능하다.

 

  • 공개 범위는 public > protected > default > private 순으로 좁아진다.
public class Computer {       // public 클래스

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

 

 

 

참고 블로그

https://kadosholy.tistory.com/96