제어자 : 클래스, 변수 또는 메서드의 선언부에 사용되어 부가적인 의미 부여
- 접근 제어자 : public, protected, default, private
- 그 외 : static, fianl, abstract, native, tansient, synchronized, volatile, strictfp
static (멤벼변수, 메서드, 초기화 블럭)
- 멤버변수
- 모든 인스턴스에 공통적으로 사용하는 클래스 변수
- 클래스 변수는 인스턴스를 생성하지 않고도 사용이 가능
- 클래스가 메모리에 로드시 생성
- 메서드
- 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다
- static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.
fianl(클래스, 메서드 , 멤버변수, 지역변수)
- 클래스
- 변경될 수 없는 클래스, 확장될 수 없는 크래스가 된다. final로 지정된 클래스는 다른 클래스의 조상이 될수 없다.
- 메서드
- 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의될 수 없다.
- 멤버변수, 지역변수
- 변수앖에 final이 붙으면 변경할 수 없는 상수가 된다.
abstract(클래스, 메서드)
- 클래스
- 클래스 내에 추상메서드가 선언되어 있음을 의미
- 메서드
- 선업누만 작성하고 구현부는 작성하지 않은 추상메서드임을 알린다
접근제어자 : 외부로부터 데이터를 보호할 수 있으며, 내부적으로만 사용되는 부분을 감추기 위해 사용
- private : 같은 클래스 내에서만 접근 가능
- default : 같은 패키지 내에서만 접근 가능
- protected : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능
- public : 접근 제한이 없다.
제어자의 사용 대상
- 클래스 : public, (default), final, abstract
- 메서드 : public, protected, (default), private, fianl, abstract, static
- 멤버변수 : public, protected, (default), private, final, static
- 지역변수 : final
'IT > Java' 카테고리의 다른 글
abstract class (0) | 2019.06.26 |
---|---|
Polymorphism (0) | 2019.06.26 |
Overriding (0) | 2019.06.25 |
상속, 포함 관계 (0) | 2019.06.24 |
생성자 (0) | 2019.06.23 |
댓글