✔ 파이널 (final) 아래 Document 참고
https://www.w3schools.com/java/ref_keyword_final.asp
Java final Keyword
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
🟥용어정리🟥
파이널(Final)
자바 프로그래밍 언어에서 파이널 이라는 키워드를 붙이고 변수에 값을 할당하면 그 변수는 수정할 수 없다는 뜻이다.
→ 상속/변경을 금지하는 규제라고 알아두면 된다!
In the Java programming language, the final keyword is used in several contexts to define an entity that can only be assigned once. Once a final variable has been assigned, it always contains the same value. - wikipedia
🟩 final을 붙일 수 있는 3가지 경우의 수 🟩
1. 필드(변수)에 final을 붙이면?
: 한번 세팅된 값을 변경되지 못하도록 한다.
2. 메소드(method)에 final을 붙이면?
: 오버라이딩(overriding) 을 할 수 없다.
3. 클래스(class) 에 final을 붙이면?
: 상속(Inheritance)을 할 수 없다.
아래 예시에 적어 놓은 주석들을 하나하나 읽어보면서
주석처리를 풀어보고 실행시켜보면 이해가 금방 될것이다!
Tip ✔
아래 코드를 모두 복사 혹은 다운로드 → IDE 에 붙여넣기 한 다음,
실행해보고 이리저리 코드를 수정해가면서
에러가 뜨면, 왜 에러가 뜨는지 직접 몸소 체험을 해봐야 경험치가 쌓입니다!
아래 댓글창에 질문 언제든지 해주세요!
(시간되는 대로 답변해드리겠습니다)
// 🟩 Final 이란?
// Abstract(추상)이 상속을 강제하는 것이라면, final은 상속/변경을 금지하는 규제이다!
// 1. 필드(변수)에서의 final
// : 한번 세팅된 값을 변경되지 못하도록 한다.
// 2. 메소드(method)에서의 final
// : overriding 을 할 수 없다.
// 3. class 에서의 final
// : 상속을 할 수 없다.
// 1. 필드(변수)에서의 final
class Calculator {
static final double PI = 3.14; // final 키워드를 사용함으로써 어떤 경우에도 수정 불가능
int left, right;
public void setOperands(int left, int right) {
this.left = left;
this.right = right;
// Calculator.PI = 6; // 이미 final으로 설정해놨기 때문에 값을 변경할 수 없어 에러뜸!
}
public void sum() {
System.out.println((this.left + this.right));
}
public void avg() {
System.out.println((this.left + this.right) / 2);
}
}
// 2. 메소드(method)에서의 final
class A {
final void b(){}
}
class B extends A {
// class A를 상속한 class B에서 method b()를 overriding하면, 에러가 발생한다!
// Why? -> method b()가 final로 지정이 되어있고 final로 지정이 되면 overrding이 안됨!
// void b(){} // 에러
}
// 3. class 에서의 final
final class C{
final void b() {}
}
// class D extends C{} // 에러뜸
// Why? -> class C는 final로 지정이 되어있고 final로 지정이 되면 상속이 안됨!
public class Final {
public static void main(String[] args) {
Calculator c1 = new Calculator();
System.out.println(c1.PI);
// Calculator.PI = 10; // 이미 final으로 설정해놨기 때문에 값을 변경할 수 없어 에러뜸!
}
}
↓↓↓↓ 코드 다운로드 ↓↓↓↓
'🖥️프로그래밍 언어 > Java' 카테고리의 다른 글
[JAVA] 자바 인터페이스(Interface) + 실제사용 Part2 (2) | 2022.10.02 |
---|---|
[JAVA] 자바 인터페이스(Interface) 정의 + 예시 (4) | 2022.09.30 |
[JAVA] 자바 접근제어자(Access Modifier) + 예제 (0) | 2022.09.28 |
[JAVA] 자바 오버로딩(Overloading) Part2 (10) | 2022.09.26 |
[JAVA] 자바 오버로딩(Overloading) (1) | 2022.09.25 |