[자바] 제어자

June·2021년 1월 2일
0

자바

목록 보기
15/36

제어자(modifier)는 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다.

접근 제어자 : public, protected, default, private
그 외: static, final, native, transient, synchronized, volatile, strictfp

static

  1. 멤버 변수

    -모든 인스턴스에 공통적으로 사용되는 클래스변수가 된다.
    -클래스변수는 인스턴스를 생성하지 않고도 사용 가능하다.
    -클래스가 메모리에 로드될 때 생성된다.

    2.메서드

    -인스턴스를 생성하지 않고도 호출이 가능한 static 메서드가 된다.
    -static메서드 내에서는 인스턴스멤버들을 직접 사용할 수 없다,

final

변수에 사용되면 값을 변경할 수 없는 상수가 되며, 메서드에 사용되면 오버라이딩을 할 수 없게 되고, 클래스에 사용되면 자신을 확장하는 자손클래스를 정의하지 못하게 된다.

final이 붙은 변수는 상수이므로 일반적으로 선언과 초기화를 동시에 하지만, 인스턴스 변수의 경우 생성자에서 초기화 되도록 할 수 있다.

abstract

  1. 클래스

    클래스 내에 추상 메서드가 선언되어 있음을 의미한다.

  2. 메서드

    선언부만 작성하고 구현부는 작성하지 않은 추상 메서드임을 알린다.

추상 클래스는 아직 완성되지 않은 메서드가 존재하는 '미완성 설계도'이므로 인스턴스를 생성할 수 없다.

접근제어자

접근 제어자가 사용될 수 있는 곳 - 클래스, 멤버변수, 메서드, 생성자

  • private: 같은 클래스 내에서만 접근이 가능하다
  • default: 같은 패키지 내에서만 접근이 가능하다
  • protected: 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다
  • public: 접근 제한이 전혀 없다.

참고로 protected는 패키지에 관계없이 상속관계에 있는 자손클래스에서 접근할 수 있도록 하는 것이 제한목적이지만, 같은 패키지 내에서도 접근이 가능하다. 그래서 protected가 default보다 접근범위가 넓다.

0개의 댓글