
클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여
하나의 대상에 여러 제어자를 같이 사용 가능(접근 제어자는 하나만)
public class ModifierTest {
public static final int WIDTH = 200;
// public static final = 제어자, 접근제어자를 제일 왼쪽에다 씀
public static void main(String[] args) {
System.out.println("WIDTH="+WIDTH);
}
}
사용하는 이유
동일 패키지의 모든 클래스 + 다른 패키지의 모든 클래스에서 사용 가능
동일 패키지의 모든 클래스 + 다른 패키지의 자식 클래스에서 사용 가능
동일 패키지의 모든 클래스에서 사용 가능
동일 클래스에서만 사용 가능
default는 다른 패키지에서 import 자체가 불가능
다른 패키지에서 사용하려면 public 클래스 선언
컴파일러가 자동 생성하는 기본생성자의 접근제어자는 클래스의 접근제어자와 동일
public 클래스의 자동 추가 생성자는 public 생성자
public 클래스 + default 생성자
public class A { // public 클래스
A() {
} // default 생성자
}
객체 없이 사용 가능
멤버변수
- 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다.
메서드
- 인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 된다.
abstract class AbstractTest { // 추상 클래스(추상 메서드를 포함한 클래스)
abstract void move(); // 추상 메서드(구현부가 없는 메서드)