IT 개발/Java
[Java] 자바 - 접근제어자 public, private, protected 및 default
KADOSHOLY
2022. 6. 29. 00:23
반응형
자바 - 접근제어자 public, private, protected 및 default
자바에서 접근제어자(access modifier)는 클래스와 클래스의 멤버(필드, 메소드, 생성자)를 사용할 때, 접근할 수 있는 범위를 지정해 주는 역할을 합니다. 보통 접근제어자 또는 접근지정자라고 부르며 클래스나 클래스 멤버 앞에 붙어있는 public, private, protected 등의 키워드가 바로 접근제어자(접근지정자)입니다.
목차
- 클래스의 접근제어자
- 클래스 멤버의 접근제어자
1. 클래스의 접근제어자
클래스를 정의할 때 사용할 수 있는 접근제어자는 public과 default(생략) 두가지입니다.
- public 클래스 : public을 사용하면, 모든 클래스에서 이 클래스에 접근이 가능합니다. (패키지에 상관없음)
- default(생략) 클래스 : 클래스앞에 접근제어자가 없으면 default 클래스로, 같은 패키지 안의 클래스에서만 접근이 가능합니다.
public class Book { // public 클래스
...
}
class NoteBook { // default 클래스
...
}
2. 클래스 멤버의 접근제어자
클래스 멤버와 함께 사용할 수 있는 접근제어자는 public, private, protected 와 default(생략) 네가지입니다.
- public 멤버 : public 은 '공개'를 나타내며, 모든 클래스에서 접근이 가능합니다 (패키지와 상관없음)
- private 멤버 : private은 '비공개'를 나타내며, 같은 클래스안에 있는 멤버들만 접근이 가능합니다.
- protected 멤버 : 같은 패키지안의 모든 클래스와, 다른 패키지의 자식 클래스에서 접근이 가능합니다.
- default(생략) 멤버 : 접근지정자가 없으면 default 멤버로, 같은 패키지안의 클래스에서만 접근이 가능합니다.
공개범위는 public > protected > default(생략) > private 순으로 좁아집니다.
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 멤버함수(메소드)
}
반응형