안녕하세요! 자바를 배우고 있는 코딩 입문자 여러분, 오늘은 자바의 'final' 키워드에 대해 쉽게 알아보려고 합니다. 자바에서 'final' 키워드는 변수, 메서드, 클래스를 수정할 수 없도록 만들어 주는 역할을 합니다. 이번 포스트에서는 이 세 가지 케이스를 각각 살펴보고, 왜 'final' 키워드를 사용하는지에 대해서 알아봅시다.
1. final 변수
- final 변수는 한 번 값을 할당하면 그 이후에 값을 변경할 수 없는 변수입니다. 다른 말로 상수라고도 불립니다. final 변수는 주로 대문자와 밑줄(_)을 사용하여 이름을 지어줍니다.
예시:
1
2
|
final int MAX_SPEED = 100;
|
cs |
2. final 메서드
- final 메서드는 하위 클래스에서 오버라이딩(재정의)할 수 없는 메서드입니다. 즉, final로 선언된 메서드는 상속받은 하위 클래스에서 수정할 수 없으므로, 원래의 기능을 그대로 유지하게 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Animal {
final void makeSound() {
System.out.println("The animal makes a sound");
}
}
class Dog extends Animal {
// 아래 코드는 오류를 발생시킵니다. 상위 클래스의 makeSound() 메서드가 final로 선언되었기 때문입니다.
void makeSound() {
System.out.println("The dog barks");
}
}
|
cs |
3. final 클래스
- final 클래스는 상속할 수 없는 클래스입니다. 다시 말해, final로 선언된 클래스는 다른 클래스가 상속받을 수 없으므로, 그대로 사용해야 합니다.
예시:
1
2
3
4
5
6
7
8
9
|
final class Animal {
// 클래스 코드
}
// 아래 코드는 오류를 발생시킵니다. Animal 클래스가 final로 선언되었기 때문입니다.
class Dog extends Animal {
// 클래스 코드
}
|
cs |
자바의 'final' 키워드를 사용하는 이유는 다음과 같습니다.
- 불변성: final 변수를 사용하여 상수를 생성함으로써 프로그램 안에서 값이 변경되지 않도록 보장할 수 있습니다.
- 안전성: final 메서드와 클래스는 상속과 오버라이딩을 통한 수정을 막아, 원래의 구현을 보존할 수 있게 합니다.
- 유지보수: 코드의 복잡성을 줄이고, 의도하지 않은 변경으로 인한 버그 발생 가능성을 줄일 수 있습니다.
'[JAVA] > ┃ⓑ KEYWORDS' 카테고리의 다른 글
[JAVA] static (0) | 2023.03.30 |
---|---|
[JAVA] void (0) | 2023.03.20 |
[JAVA] 다형성 (Polymorphism) (0) | 2023.03.19 |
[JAVA] 추상화 (Abstraction) (0) | 2023.03.19 |
[JAVA] 오버로딩(Overloading) vs 오버라이딩(Overriding) (0) | 2023.03.19 |