[Java] 자바 final 명령어 (public static final ...)


final 명령어

- 값을 바꿀 수 없게 조회하는 용도로만 사용하고 싶은 변수가 있다면, 읽기 전용으로 만들어야 한다.

- final 명령을 변수 선언 앞에 붙인다.

- 조회용임을 직관적으로 알 수 있도록 보통 대문자로 변수명을 시작한다.

  그리고 단어와 단어 사이에는 '_' 문자를 사용하여 구분한다.

- 이렇게 조회용으로만 사용하는 변수를 상수 변수라고 부른다. 보통 "상수"라고 한다.

- 상수는 인스턴스 마다 고유의 값을 갖지 않고, 모든 인스턴스가 같은 값을 공유한다.

- 그래서 모든 인스턴스가 같은 값을 갖는 변수인 경우에는 보통 클래스 변수로 선언한다.

- 클래스 변수로 선언하면 인스턴스 마다 그 변수를 만들 필요가 없어 메모리가 절약된다.

- 상수 변수 중에서 공개하는 변수인 경우 public을 붙인다.



final 상수 예제


static class ArrayList {
   
    public static final int DEFAULT_SIZE = 10;
    public static final int GROW_SIZE = 1000;
   
    Object[] list;
    int length;
   
    public ArrayList() {
      list = new Object[10];
    // DEFAULT_SIZE = 20; => 오류 발생
    }
   
    public ArrayList(int capacity) {
      if (capacity < DEFAULT_SIZE || capacity < GROW_SIZE) {
        list = new Object[DEFAULT_SIZE];
      } else {
        list = new Object[capacity];
      }
  }
}



public static final int DEFAULT_SIZE = 10;

- static을 안 써줘도 되지만 static을 써줘서 클래스 상수로 만들어

  주면 인스턴스 마다 상수를 만들 필요가 없기 때문에 메모리가 절약

  된다.

- 상수 변수 중에서 공개하는 상수인 경우 public을 붙인다.







블로그 이미지

필로그래머

,