제어자(modifier) (1)

roglog·2021년 6월 30일
0

java의 정석

목록 보기
19/36

1. 제어자란


  • 클래스, 변수, 메서드의 선언부에 함께 사용됨
  • 부가적인 의미를 부여함
  • 하나의 대상에 대해서 여러 제어자를 조합하여 사용가능
    (접근제어자는 한 개만 사용 가능)
  • 종류
    • 접근 제어자: public, protected, default, private
    • 그 외: static, final, abstract, native, transient, synchronized, volatile, strictfp

2. static - 클래스의, 공통적인


  • static이 붙은 멤버변수와 메서드, 초기화 블럭은 인스턴스가 아닌 클래스에 관계된 것이기 때문에 인스턴스를 생성하지 않고도 사용할 수 있음
  • static이 사용될 수 있는 곳 -> 멤버변수, 메서드, 초기화 블럭
  • 멤버변수
    • 모든 인스턴스에 공통적으로 사용되는 클래스변수가 됨
  • 메서드
    • 인스턴스를 생성하지 않고도 호출이 가능한 static메서드가 됨
    • static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없음
  • static초기화 블럭은 주로 클래스변수를 초기화하는데 주료 사용 됨

3. final - 마지막의, 변경될 수 없는


  • 사용되면 값을 변경할 수 없는 상수가 됨
  • 메서드에 사용하면 변경할 수 없는 메서드가 되어 오버라이딩을 통해 재정의 될 수 없음
  • 클래스에 사용되면 자손클래스를 정의하지 못하게 함
  • final이 붙은 변수는 일반적으로 선언과 초기화를 동시에 하지만, 인스턴스변수의 경우 생성자에서 초기화 되도록 할 수 있음

4. abstract - 추상의, 미완성의


  • 메서드의 선언부만 작성하고 실제 수행내용은 구현하지 않은 추상 메서드를 선언하는데 사용
  • 클래스에 사용되어 클래스 내에 추상메서드가 존재한다는 것을 쉽게 알 수 있게 함
  • 추상 클래스는 아직 완성되지 않은 메서드가 존재하므로 인스턴스를 생성할 수 없음
    (추상 메서드가 없어도 추상 클래스로 만드는 경우도 있음 - 이런 경우 메서드의 선언부만 만들어놓고 상속 받아서 사용하게 만들어 놓은 클래스일 수 있음)

java의 정석 chapter7

profile
Full Stack Developer 📚

0개의 댓글