Java - Final
- Final은 Class와 Method 그리고 필드에 사용할 수 있다.
1. Final Class
- Class에 사용할 경우 해당 클래스에 대하여 더이상 상속을 받을 수 없다.
2. Final Method
- Method에 사용할 경우 더이상 오버라이딩으로 확장을 할 수 없다.
3. Final Value
- 필드에 사용할 경우 값을 수정할 수 없다.
- 또한 바꿀 수 없는 변수이므로, Thread-Safe 하다.
4. Final을 사용하는 이유
- Final은 더이상 변경을 하지 않는 경우에 사용하는데, 개발자들의 의도치 않은 코드 변경을 막을 수 있으며
- 해당 코드는 더이상 수정을 하지 않는다, 혹은 바뀌지 않는 값이 들어온다를 명시적으로 알려줄 수 있어서 가독성에도 좋다.
5. 주의 할 점
public class Test {
static class A {
int testInt = 10;
}
public static void main(String[] args) {
final A a = new A();
a.testInt = 20; // 이렇게 안의 변수는 final이 아니므로 변경할 수 있다.
}
}
public class Test {
static class A {
final int testInt = 10;
}
public static void main(String[] args) {
final A a = new A();
a.testInt = 20; // A 클래스 안에서 testInt가 final 이므로 error가 발생한다.
}
}