- 변경의 마지막이라는 의미를 부여함
- 클래스, 메서드, 변수에 사용 가능함
final 이란
단어 뜻 그대로 마지막, 즉 더는 바뀔 수 없음을 뜻한다
final 이란 단어를
- 변수에다 붙이면 값 변경 불가하다!!!
리터럴==>읽기 전용, 값을 바꿀 수 없게 된다
final 이란 단어를
- 메서드에 붙이면 오버라이딩 금지, 하지만 상속받아서 쓰는 것은 가능
final 이란 단어를
- 클래스에 붙이면 상속 금지가 된다!!!!
예를 들어 자세히 살펴보자!!!!!!!!!!!!!!!
1) final 변수
값 변경 금지=> 저장되어 있는 값만 사용 가능
= 즉, 상수라는 말
일반 변수와 구별하기 위해 이름을 보통 대문자 사용
예) MAX_NUM
2) final 메서드
메서드 변경 금지= 메서드 오버라이딩 금지
단, 상속받아 사용은 가능
final이 안 붙은 메서드는 상속된 클래스의 오버라이딩이 된다
3) final 클래스
클래스 변경 금지, =상속 금지
단, 인스턴스 생성을 통해 사용은 가능
예> String 클래스, Math 클래스 등
하지만 final 클래스의 인스턴스를 생성해서 사용할 수는 있다
그리고 final 클래스 내의 인스턴스 변수 값 변경은 가능
final 제어자는 일반적으로 선언과 동시에 초기화를 하는 경우가 많다
왜? 애초에 초기화를 하지 않으면 나중에 값을 바꾸기가 힘들기 때문이다
그런데 예외적으로 초기화를 진행하지 않는 경우가 있다
(blank는 ‘비어있는‘ 뜻)
이 blank final 변수를 초기화하기 위해서는
생성자를 통해서 초기화해야 하며, 하지 않으면 오류 발생함
ㅣ 수고 많으셨어요~ㅣ
부족한 글을 읽어주셔서 감사드립니다
아직 부족한 게 많으니
틀린 곳이 있다면
조언의 말씀 꼭 부탁드립니다!!!!
자바의 참조형(레퍼런스)의 형변환에 도전하기!!! (업캐스팅/다운캐스팅)(Up Casting/Down Casting) (0) | 2020.06.16 |
---|---|
추상클래스(Abstract Class) _ 자바 프로그램에 무슨 추상이냐? (0) | 2020.06.13 |
자바이해하기_java Singleton 디자인 패턴이 뭐지? (0) | 2020.06.04 |
자바 변수총정리_ 인스턴스변수,로컬변수,클래스변수 싹털기 (0) | 2020.06.03 |
[JAVA ] 쉬운 자바 문법_조건문(if, else if)은 어떻게 공부해야 할까? (0) | 2020.06.03 |