[JAVA] 자바에서의 상수, final

Re_Go·2024년 5월 26일
0

JAVA

목록 보기
14/37
post-thumbnail
post-custom-banner

1. final 키워드란?

자바에서 변하지 않는 값을 담는 변수를 지정할 때, 혹은 상속이 되지 않는 클래스나 메서드를 지정할 때 final 키워드를 사용합니다. 마치 자바스크립트에서 변수를 상수로 만드는 const 키워드나 객체를 더 이상 수정할 수 없게 만드는 freeze 메서드처럼 말이죠.

그러나 키워드가 분리되어있는 자바스크립트와는 달리 자바에서 final 키워드는 변수 뿐만 아니라 클래스, 메서드 등에도 광범위한 역할로 사용된다는 차이점이 존재합니다.

  1. final 변수 : 선언한 변수에 값을 딱 한번만 선언 한 뒤 재할당 불가능
public class Main {
    public static void main(String[] args) {
        final int CONSTANT_VALUE = 10; // final 변수 선언
        //  CONSTANT_VALUE = 20; // 컴파일 오류: final 변수는 값 변경 불가능

        System.out.println("Value is: " +  CONSTANT_VALUE); // 10 출력
    }
}
  1. final 클래스 : 해당 클래스를 다른 클래스에 상속하는 행위 불가능
// Parent 클래스를 final로 지정
public final class Parent {
    void display() { // display 메서드를 final 메서드로 지정
        System.out.println("This is a final method.");
    }
}

// 오류 발생 : final 클래스를 상속할 수 없음
class Child extends Parent {
    // 오류 발생: final 메서드를 오버라이드할 수 없음
    // void display() {
    //     System.out.println("This is an overridden method.");
    // }
}
  1. final 메서드 : 클래스를 상속 받는 다른 클래스가 해당 메서드를 오버라이딩(재정의) 할 수 없음. (단 호출은 가능)
class Parent {
    final void method() {
        // 메서드 내용
    }
}

class Child extends Parent {
    // 오류: final 메서드는 오버라이딩할 수 없음
    void method() {
        // 오버라이딩 시도
    }
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.
post-custom-banner

0개의 댓글