final 제어자는 자바에서 변수, 메서드, 클래스 등에 적용할 수 있는 제어자로, 한 번 초기화된 후에는 값을 변경할 수 없음을 나타냅니다. final 제어자는 상수, 메서드 오버라이딩 방지, 클래스 상속 방지 등 다양한 상황에서 사용됩니다.
1. final 제어자의 사용 예제
1.1. 변수에 final 제어자 사용 (상수로 사용)
// Example.java
public class Example {
// 상수는 대문자로 작성하는 것이 관례
private static final int MAX_VALUE = 100;
public void printMaxValue() {
System.out.println("Max Value: " + MAX_VALUE);
}
}
위의 예제에서 MAX_VALUE는 한 번 초기화되면 변경할 수 없는 상수가 됩니다.
1.2. 메서드에 final 제어자 사용 (메서드 오버라이딩 방지)
// ParentClass.java
public class ParentClass {
public final void finalMethod() {
System.out.println("This is a final method.");
}
}
// ChildClass.java
public class ChildClass extends ParentClass {
// 아래의 메서드 오버라이딩 시 에러 발생
// @Override
// public void finalMethod() {
// System.out.println("Child class overriding the final method.");
// }
}
final 메서드는 하위 클래스에서 오버라이딩할 수 없습니다.
1.3. 클래스에 final 제어자 사용 (상속 방지)
// FinalClass.java
public final class FinalClass {
// 클래스 내용
}
// ChildClass.java
// 에러 발생: FinalClass는 상속할 수 없는 final 클래스입니다.
// public class ChildClass extends FinalClass {
// // 클래스 내용
// }
final 클래스는 다른 클래스에서 상속할 수 없습니다.
2. final 제어자의 특징
- 변수에 적용할 경우, 해당 변수는 한 번 초기화되면 값을 변경할 수 없습니다.
- 메서드에 적용할 경우, 해당 메서드는 하위 클래스에서 오버라이딩할 수 없습니다.
- 클래스에 적용할 경우, 해당 클래스는 상속될 수 없습니다.
주의사항
- final 제어자를 사용하면 불변성(Immutability)을 갖는 변수, 메서드, 클래스를 생성할 수 있습니다.
- final 변수는 상수로 사용되며, 관례상 대문자로 작성됩니다.
- final 메서드와 클래스는 상속과 관련된 문제를 방지할 수 있습니다.
- final 제어자는 코드의 안정성과 유지보수성을 향상시키는데 기여할 수 있습니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 abstract 제어자 (0) | 2023.11.12 |
---|---|
자바 static 제어자 (0) | 2023.11.12 |
자바 private 제어자 (0) | 2023.11.11 |
자바 default 제어자 (0) | 2023.11.11 |
자바 protected 제어자 (0) | 2023.11.11 |