안녕하세요! 자바를 배우고 있는 코딩 입문자 여러분, 오늘은 자바의 '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' 키워드를 사용하는 이유는 다음과 같습니다.

  1. 불변성: final 변수를 사용하여 상수를 생성함으로써 프로그램 안에서 값이 변경되지 않도록 보장할 수 있습니다.
  2. 안전성: final 메서드와 클래스는 상속과 오버라이딩을 통한 수정을 막아, 원래의 구현을 보존할 수 있게 합니다.
  3. 유지보수: 코드의 복잡성을 줄이고, 의도하지 않은 변경으로 인한 버그 발생 가능성을 줄일 수 있습니다.

 

 

 

 

 

 

'[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