반응형
final 키워드는 코드의 안정성을 높이고 의도를 명확히 표현하는 데 도움을 주며,
상수, 불변 객체, 메서드 오버라이딩 방지 등 다양한 상황에서 유용하게 사용됩니다.
개요
final 이라는 키워드를 사용하는 대부분의 경우는
단순히 변수에 붙여서 상수로 지정하는 것입니다.
final 을 사용했을 때 유용한 경우가 더 있기에 이번 포스팅에서 알아보고, 적극 사용해보려 합니다.
아래에서 final 키워드의 다양한 사용 사례를 예제와 함께 설명하겠습니다.
final 변수
final 변수는 한 번 초기화되면 값을 변경할 수 없습니다. 이를 상수(constant)로 사용하거나 값이 변경되지 말아야 할 경우에 유용합니다.
public class FinalVariableExample {
public static void main(String[] args) {
final int constantValue = 42;
// constantValue = 100; // 오류: final 변수는 재할당 불가능
System.out.println("상수 값: " + constantValue);
}
}
final 메서드
final 메서드는 하위 클래스에서 재정의(오버라이딩) 할 수 없습니다. 이는 메서드의 동작을 변경하지 못하게 하려는 경우에 사용됩니다.
public class Parent {
public final void doSomething() {
System.out.println("부모 클래스에서 정의된 final 메서드");
}
}
public class Child extends Parent {
// 오류: final 메서드를 재정의할 수 없음
// public void doSomething() {
// System.out.println("자식 클래스에서 오버라이딩한 메서드");
// }
}
final 클래스
final 클래스는 상속할 수 없습니다. 이는 특정 클래스가 다른 클래스에서 상속되지 못하도록 하려는 경우에 사용됩니다.
public final class FinalClass {
// ...
}
// 오류: final 클래스를 상속할 수 없음
// public class SubClass extends FinalClass {
// // ...
// }
final 매개변수
메서드의 매개변수를 final로 선언하면 메서드 내에서 해당 매개변수를 변경할 수 없습니다. 이는 메서드 내에서 매개변수의 값이 변경되지 않도록 보장합니다.
public class FinalParameterExample {
public void printMessage(final String message) {
// message = "새로운 메시지"; // 오류: final 매개변수는 재할당 불가능
System.out.println(message);
}
public static void main(String[] args) {
FinalParameterExample example = new FinalParameterExample();
example.printMessage("안녕하세요!");
}
}
final 필드 (멤버 변수)
final 필드는 객체가 생성될 때 초기화되며, 이후에는 변경할 수 없습니다. 주로 불변(immutable) 객체를 생성할 때 사용됩니다.
public class ImmutableClass {
private final int value;
public ImmutableClass(int value) {
this.value = value;
}
public int getValue() {
return value;
}
// value 필드를 변경하는 메서드는 없음
}
반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] String 타입과 String Class의 비교 / == 그리고 .equals() (0) | 2022.03.19 |
---|---|
[Java] Exception 클래스로 예외 상황 처리하기 예제 (0) | 2022.03.10 |