EEALL@ONCE
☕ final 클래스 / 메소드 / 필드 본문
728x90
final 키워드는 Java에서 여러 곳에서 사용되는데, 주로 필드, 메서드, 클래스, 그리고 인스턴스에 적용됩니다. 여기서 각각의 사용법에 대해 설명하겠습니다.
1. **final 필드:**
- 값 변경이 불가능합니다.
- 선언 시 또는 생성자에서 초기화해야 합니다.
public class Example {
final int constantValue;
public Example(int value) {
constantValue = value; // 생성자에서 초기화
}
}
```
2. **final 메서드:**
- 자식 클래스에서 오버라이드 불가능합니다.
```java
public class Parent {
final void finalMethod() {
// final 메서드 구현
}
}
public class Child extends Parent {
// 컴파일 오류: final 메서드를 오버라이드 할 수 없음
/*void finalMethod() {
// 오버라이드 시도
}*/
}
```
3. **final 인스턴스:**
- 다른 값을 넣는 것은 불가능하지만, 필드는 변경 가능합니다.
```java
public class Example {
final int constantValue = 10; // 값을 변경할 수 없음
void modifyField() {
// 컴파일 오류: final 필드 값을 변경할 수 없음
// constantValue = 20;
}
}
```
4. **final 클래스:**
- 하위 클래스를 만들 수 없습니다.
```java
final class FinalClass {
// final 클래스 내용
}
// 컴파일 오류: final 클래스를 상속할 수 없음
/*public class ChildClass extends FinalClass {
// 하위 클래스 생성 불가
}*/
```
728x90
'언어💻 > 자바☕' 카테고리의 다른 글
☕ 추상클래스와 인터페이스의 차이는 뭘까? (1) | 2023.11.27 |
---|---|
☕ FUNCTIONAL INTERFACE : @FunctionalInterface (0) | 2023.11.20 |
☕ 생성자 (0) | 2023.10.27 |
☕ formatted : 포멧함수 (0) | 2023.10.27 |
☕ 클레스를 다른 클레스에서 받아서 사용하기 (2) | 2023.10.24 |