본문 바로가기
IT/Java

제어자

by 봉즙 2019. 6. 25.

제어자 : 클래스, 변수 또는 메서드의 선언부에 사용되어 부가적인 의미 부여

  • 접근 제어자 : public, protected, default, private
  • 그    외 : static, fianl, abstract, native, tansient, synchronized, volatile, strictfp

 

static (멤벼변수, 메서드, 초기화 블럭)

  • 멤버변수
    1. 모든 인스턴스에 공통적으로 사용하는 클래스 변수
    2. 클래스 변수는 인스턴스를 생성하지 않고도 사용이 가능
    3. 클래스가 메모리에 로드시 생성
  • 메서드
    1. 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 된다
    2. static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다.

fianl(클래스, 메서드 , 멤버변수, 지역변수)

  • 클래스
    1. 변경될 수 없는 클래스, 확장될 수 없는 크래스가 된다. final로 지정된 클래스는 다른 클래스의 조상이 될수 없다.
  • 메서드
    1. 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의될 수 없다.
  • 멤버변수, 지역변수
    1. 변수앖에 final이 붙으면 변경할 수 없는 상수가 된다.

abstract(클래스, 메서드)

  • 클래스
    1. 클래스 내에 추상메서드가 선언되어 있음을 의미
  • 메서드
    1. 선업누만 작성하고 구현부는 작성하지 않은 추상메서드임을 알린다

 

접근제어자 : 외부로부터 데이터를 보호할 수 있으며, 내부적으로만 사용되는 부분을 감추기 위해 사용

  1. private : 같은 클래스 내에서만 접근 가능
  2. default : 같은 패키지 내에서만 접근 가능
  3. protected : 같은 패키지 내에서, 다른 패키지의 자손클래스에서 접근이 가능
  4. 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

댓글