final 키워드는 Java에서 상수를 생성하고 불변성을 보장하는 가장 기본적인 도구 중 하나입니다. 그러나 이는 단지 변경할 수 없는 변수를 선언하는 것 이상입니다. 이 게시물에서는 다양한 맥락에서 final 키워드의 주요 측면과 변수, 정적 필드 및 생성자에 미치는 영향을 살펴보겠습니다.
변수와 함께 final을 사용하면 값이 할당되면 나중에 변경할 수 없습니다. 간단한 분석은 다음과 같습니다.
final int COUNT; final char GENDER = 'F'; // Initialized at declaration public FinalKeyword() { // Initialized in Constructor COUNT = 90; // This will give a compile error // once initialized during declaration, cannot be changed GENDER = 'M'; }
위의 예에서:
정적 최종 변수는 선언 시 또는 정적 블록에서 초기화되어야 합니다. 인스턴스 변수와 달리 정적 최종 필드는 다음과 같은 이유로 생성자에서 초기화될 수 없습니다.
static final int ID = 1; static final int DEPT; static { DEPT = 90; // Initialized in static block }
인스턴스가 생성될 때 생성자가 호출되고 정적 변수는 (인스턴스가 아님) 클래스와 연결되므로 생성자 내에서 초기화하거나 수정할 수 없습니다.
final이 없는정적 변수는 생성자 내부에서도 수정할 수 있습니다.
static int salary; // Default value 0 at class loading public FinalKeyword() { salary = 10; // Static variable modified in constructor }
When a final variable is not initialized at the time of declaration, it must be initialized in all constructors to avoid a compile-time error.
public FinalKeyword() { COUNT = 90; // Initialized in default constructor } public FinalKeyword(int count) { COUNT = count; // Initialized in parameterized constructor }
If a constructor does not initialize a final variable, the compiler will throw an error, ensuring the value is always assigned exactly once.
Usage | Effect | Example |
---|---|---|
Final Method | Cannot be overridden in subclasses. | public final void getType() in java.lang.Object |
Final Class | Cannot be inherited by any class. | java.lang.String, java.lang.Math |
The final keyword is a powerful tool in Java to enforce immutability and prevent unintended modifications. It plays a crucial role in defining constants, ensuring class-level consistency, and making code easier to understand and maintain.
Stay tuned for other posts in this series, where we’ll cover more Java keywords in depth to help you master the nuances of the language!
Java Fundamentals
Array Interview Essentials
Java Memory Essentials
Collections Framework Essentials
Happy Coding!
The above is the detailed content of Mastering the final Keyword in Java: Constants, Immutability, and More. For more information, please follow other related articles on the PHP Chinese website!