EEALL@ONCE
☕final 본문
728x90
1. **Final 필드**:
- `final`로 선언된 필드는 한 번 초기화되면 값 변경이 불가능합니다.
- 필드를 선언 시 또는 생성자에서 초기화해야 합니다. 초기화 후에는 수정이 불가능하므로, 필드의 값을 나중에 변경할 수 없습니다.
2. **Final 메서드**:
- `final`로 선언된 메서드는 자식 클래스에서 오버라이드(재정의)할 수 없습니다.
- 부모 클래스에 정의된 `final` 메서드는 그대로 사용되며, 자식 클래스에서 변경할 수 없습니다.
3. **Final 인스턴스**:
- `final`로 선언된 인스턴스는 다른 객체로 변경할 수 없습니다.
- 그러나 필드의 값은 변경 가능합니다. 객체의 내부 상태나 데이터를 수정하는 것은 허용됩니다. 주의할 점은 주소(참조)를 바꿀 수 없다는 것입니다.
4. **Final 클래스**:
- `final`로 선언된 클래스는 하위 클래스를 가질 수 없습니다.
- 다시 말해, 다른 클래스에서 이 `final` 클래스를 상속하여 확장시킬 수 없습니다. 이로 인해 클래스의 구조와 동작이 불변하게 유지됩니다.
`final` 키워드의 사용은 주로 불변성과 확장성을 제어하기 위해 필요한 상황에서 이루어집니다.
// Final 필드와 메서드를 가지는 클래스
class FinalExample {
final int constantValue = 10; // Final 필드
final void printMessage() { // Final 메서드
System.out.println("This is a final method.");
}
}
// Final 클래스
final class ImmutableClass {
private final int value;
public ImmutableClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
728x90
'언어💻 > 자바☕' 카테고리의 다른 글
☕FTP 서버에 파일을 업로드 (0) | 2023.09.11 |
---|---|
☕Calendar calendar (0) | 2023.09.05 |
☕`Path filePath`와 `File file = filePath.toFile() (0) | 2023.08.31 |
☕접근 제어자 (0) | 2023.08.28 |
☕캡슐화 (Encapsulation)란 (0) | 2023.08.28 |