Java에서 final은 다음과 같은 의미로 사용됩니다.
1.변수
: final 변수는 값을 변경할 수 없는 변수입니다. 즉, 상수(constant)로 사용됩니다. final 변수는 한 번 초기화하면 그 이후로 값을 변경할 수 없으므로, 선언과 동시에 값을 할당하거나 생성자에서 값을 할당해야 합니다. final 변수의 이름은 모두 대문자로 작성하는 것이 관례입니다.
예시:
final int MAX_VALUE = 100; // MAX_VALUE는 100으로 고정된 상수입니다.
2.메소드
: final 메소드는 하위 클래스에서 오버라이드(override)할 수 없습니다. 즉, 메소드의 구현을 변경할 수 없으므로, 하위 클래스에서는 final 메소드를 호출할 수만 있습니다. final 메소드는 보안성이나 성능 향상을 위해 사용될 수 있습니다.
예시:
class Parent {
public final void print() {
System.out.println("Parent");
}
}
class Child extends Parent {
// 아래와 같이 오버라이드하면 컴파일 에러가 발생합니다.
// public void print() {
// System.out.println("Child");
// }
}
3.클래스
: final 클래스는 하위 클래스를 가질 수 없습니다. 즉, 다른 클래스에서 final 클래스를 상속할 수 없습니다. final 클래스는 보안성, 성능 향상, 하위 클래스의 오버라이드 방지 등의 이유로 사용될 수 있습니다.
예시:
final class FinalClass {
// final 클래스이므로 하위 클래스를 가질 수 없습니다.
}
// 아래와 같이 FinalClass를 상속하려고 하면 컴파일 에러가 발생합니다.
// class Child extends FinalClass {
// }
final 키워드는 일반적으로 변하지 않는 값, 변경되면 안 되는 메소드 또는 클래스를 선언하는 경우에 사용됩니다.
'java(자바)' 카테고리의 다른 글
[java(자바)] == vs equals() _디버깅의 눈물 (0) | 2023.02.25 |
---|---|
[java(자바)] 자바의 제어자 _디버깅의 눈물 (0) | 2023.02.25 |
[java(자바)] final, finally, finalize의 차이점? _디버깅의 눈물 (0) | 2023.02.24 |
[java(자바)] 다형성 _디버깅의 눈물 (0) | 2023.02.24 |
[java(자바)] 상속 관계, 포함 관계(is-a, has-a) _디버깅의 눈물 (0) | 2023.02.24 |