정의
- 클래스, 변수, 메서드 선언부에 사용되어 부가적인 의미를 부여
접근 제어자
- 멤버나 클래스에 사용되며 접근할 수 있는 영역을 제한한다.
- 외부로부터 데이터를 보호하기 위해 사용
- 내부적으로 사용되는 부분을 감추기 위해서
- public : 접근 제한이 없다
- protected : 같은 패키지, 다른 패키지의 자손클래스에서 접근 가능
- default : 같은 패키지 내에서만 접근이 가능 ( 접근 제어자가 없으면 default )
- private : 같은 클래스 내에서만 접근이 가능
- 4개 중 1개의 접근 제어자만 자용할 수 있다.
그 외의 제어자
- static ( 멤버 변수, 메서드, 초기화 블럭에 사용 )
클래스의~ 공통적인~
- 인스턴스를 생성하지 않고도 사용할 수 있다.
class Main{ public static void main(String[] args) { System.out.println(Static.x); Static.show_something(); } } class Static{ static int x = 10; static{ System.out.println("클래스 Static 사용됩니다."); } static void show_something(){ System.out.println("something"); } } //출력 : 클래스 Static 사용됩니다. 10 something
- final ( 클래스, 메서드, 멤버변수, 지역변수 )
변경 될 수 없는~
- final 변수 : 변경되지 않는 상수
- final 메서드 : 오버라이딩을 할 수 없는 메서드
- final 클래스 : 조상이 될 수 없는 클래스
- abstract ( 클래스, 메서드 )
미완성의~
- abstract 클래스 : 클래스 내에 추상 메서드가 선언되어 있다.
(인스턴스를 생성할 수 없다)- abstract 메서드 : 선언부만 작성하고 구현부는 없는 메서드.