S E P H ' S

[Java] 8. final keyword 본문

Programing & Coding/JAVA

[Java] 8. final keyword

yoseph0310 2022. 1. 10. 20:00

Final

final 키워드는 변수(variable), 메소드(method), 클래스(class)에 사용될 수 있습니다. final 키워드는 어디에 사용되느냐에 따라서 의미가 달라지지만 공통적으로 무언가를 제한한다는 의미를 가집니다. 

- final variable
  변하지 않는 상수값이 되어 새로 할당할 수 없는 변수가 된다.
- final method

  다른 메소드에서 오버라이딩 하지 못한다.
- final class

  다른 클래스에서 상속하지 못한다.

변수(Variable)

변수에 final을 붙이면 이 변수는 수정할 수 없다는 의미를 가집니다. 수정될 수 없기 때문에 초기화는 필수입니다. 만약에 객체안의 변수라면 생성자, static 블럭을 통한 초기화는 허용됩니다. 

 

수정할 수 없다는 범위는 그 변수의 값에 한정합니다. 즉, 다른 객체를 참조하거나 참조하는 객체 내부의 값은 변경할 수 있습니다.

아래 코드에 value라는 기본형 변수, person이라는 참조형 변수를 하나씩 선언하고 있습니다.

기본형 변수는 값을 변경할 수 없고 참조형 변수는 그 객체 내부의 값은 변경할 수 있지만 가리키는 객체를 변경하지 못한다는 사실을 알 수 있습니다. 추가로, final로 선언된 변수는 초기화 전에 사용하게 되면 컴파일 에러가 발생합니다.

 

메소드(Method)

메소드에 final이 사용되면 오바라이딩을 제한합니다. 클래스를 상속하면 해당 클래스의 protected, public의 접근 제어자를 가진 메소드를 상속해서 재구현할 수 있습니다. 하지만 final을 메소드에 사용함으로써 상속 받은 클래스에서 해당 메소드를 수정해서 사용하지 못하도록 할 수 있습니다.

 

클래스(Class)

final 키워드를 클래스에 사용하면 상속 불가능 클래스가 됩니다. 즉, 다른 클래스에서 상속하여 재정의를 할 수 없습니다. 대표적으로 Interger와 Wrapper클래스가 있습니다. 클래스 설계 시에 재정의 불가하게 사용하고 싶다면 final로 등록하는 것이 좋습니다.

 

 

 

참조링크

 

[Java] final 키워드에 대해서 알아보자

안녕하세요. 오늘은 여러분들과 java의 final 키워드에 대해서 알아보려고 합니다. final final 키워드는 변수(variable), 메서드(method), 또는 클래스(class)에 사용될 수 있습니다. 이 final 키워드는 어떤

sabarada.tistory.com

 

'Programing & Coding > JAVA' 카테고리의 다른 글

[Java] Arrays.asList()  (0) 2022.11.07
[Java] 9. Overloading & Overriding  (0) 2022.01.18
[Java] 7. Generic  (0) 2022.01.10
[Java] 6. Annotation  (0) 2022.01.04
[Java] 5. Collection (Stack, Queue)  (0) 2022.01.04