Final

2021. 1. 5. 16:072021/JOB DA STUDY

final은 해당 Entity가 오로지 한번 할당 될 수 있음을 의미

 

final 변수

해당 변수가 생성자나 대입연산자를 통해 "한번만 초기화 가능"함을 의미 (상수를 만들 때 응용)

 

final 메소드

해당 메소드를 Override(상속)하거나 숨길 수 없음을 의미

 

final 클래스

해당 클래스는 더 이상 상속할 수 없음을 의미 (상속 계층 구조에서 마지막 클래스)

 

 

  •  final 멤버 변수가 반드시 상수는 아니다.

final의 정의는 "상수"가 아닌 "한번만 초기화"이기 때문이다.

 

  • private 메소드와 final 클래스의 모든 메소드는 명시하지 않아도 final처럼 동작

Override가 불가능하기 때문이다.

 

-> Pricate: 자식 클래스에서 안보이며 오버라이드도 안된다.

-> final: 자식 클래스에서 보이지만 오버라이드가 안된다.

 

 

---------------------------------------------------------------------------------------------------------------------------------

public static final String name = "전지민";

 

위와 같이 static final 을 사용하는 이유 : 클래스 멤버 변수를 final로 지정하는 의도

모든 클래스 인스턴스에서 동일하게 써야하는 값이며, 처음부터 끝까지 변경할 의도가 없는 경우, 

인스턴스가 만들어질 때 마다 새로운 메모리를 잡고 초기화하지 않고, 클래스 레벨에서 한번만 할당해서 하나의 메모리 공간을 쭉 쓰게 되는 경우가 더 효율적이다.

 

 

 

 

 

 

 

 

 

 

'2021 > JOB DA STUDY' 카테고리의 다른 글

디자인패턴_Strategy Pattern of Behavioral Pattern  (0) 2021.01.06
디자인패턴_Singleton Pattern of Creational Pattern  (0) 2021.01.05
Static  (0) 2021.01.05
Design Pattern  (0) 2021.01.05
디자인패턴_MVC Pattern  (0) 2020.12.31