JAVA의 제어자 & 활용

‍박소연·2025년 5월 14일

final

해당 entity는 한 번만 할당될 수 있다.

  • 변수: 해당 변수는 한 번만 초기화 가능
  • 메소드: 해당 메소드를 오버라이드할 수 없음
  • 클래스: 해당 클래스는 상속할 수 없음

1. final 멤버 변수는 반드시 상수는 아니다.

  public class Test {
    private final int value;

    public Test(int value) {
      this.value = value;
    }
    ...
  }

여기서 final 멤버 변수는 한 번만 선언될 뿐, 이 클래스의 인스턴스들은 각기 다른 value 값을 가질 수 있다.

static

해당 데이터의 메모리 할당을 컴파일 시간에 한다. 동적 데이터와 달리, 프로그램 실행 직후부터 끝날 때까지 메모리 수명이 유지된다.

static final

static final로 상수를 선언하면 인스턴스가 만들어질 때마다 새로운 메모리에 초기화하지 않고, 하나의 메모리 공간만을 사용할 수 있어 효율적이다.

만약 상수가 각 개체에 대해 다른 값을 가질 수 있는 경우, static으로 선언하지 않는다.

접근 제어자

0개의 댓글