본문 바로가기

언어 기초/JAVA

[자바의정석 | Chapter 07 객체지향 프로그래밍2] 제어자

1. 학습목표

제어자에 대해 이해할 수 있다.

2.필요 개념 문장정리

제어자

  • 제어자는 클래스, 변수 메서드 선언부와 함께 사용되어 부가적인 의미를 부여한다.
    접근 제어자 - public, protected, default, private
    그외 - static, final, abstract, native, transient, synchronized, volatile, strictfp
  • static이 붙은 멤버변수와 메서드 그리고 초기화 블럭은 인스턴스가 아닌 클래스에 관계된 것이기 때문에 인스턴스를 생성하지 않고도 사용할 수 있다.
  • 인스턴스메서드와 static메서드의 근본적인 차이는 메서드 내에서 인스턴스 멤버를 사용하는가의 여부에 있다.
  • static초기화 블럭은 클래스가 메모리에 로드될 때 단 한번만 수행되며 주로 클래스 변수를 초기화하는데 주로 사용된다.
    static이 사용될 수 있는 곳 - 멤버변수, 메서드, 초기화블럭
  • final은 변수에 사용되면 값을 변경할 수 없는 상수가 되며 메서드에 사용되면 오버라이딩을 할 수 없게 되고 클래스에 사용되면 자신을 확장하는 자손클래스를 정의하지 못하게 된다.
    final이 사용될 수 있는 곳 - 클래스, 메서드, 멤버변수, 지역변수
  • abstract는 메서드의 선언부만 작성하고 실제 수행내용은 구현하지 않은 추상메서드를 선언하는데 사용한다.
    abstract가 사용될 수 있는 곳 - 클래스, 메서드

접근제어자

  • 접근제어자는 멤버 또는 클래스에 사용되어 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 한다.
  • 접근제어자가 사용될 수 있는 곳 - 클래스, 멤버변수, 메서드, 생성자
    private 같은 클래스 내에서만 접근이 가능하다.
    defult 같은 패키지 내에서만 접근이 가능하다.
    protected 같은 패키지 내에서, 그리고 다른 패키지의 자손클래스에서 접근이 가능하다.
    public 접근 제한이 전혀 없다.
  • 접근 범위 public > protected > (default) > private

 3. 코드작성

4. 마무리

제어자의 사용에 대해 이해할 수 있었다.