JAVA
자바에서 final이란?
D_Helloper
2023. 5. 28. 20:15
final
상속/변경을 금지하는 것
final 필드(변수)
- 실행되는 과정에서 한 번 값이 정해진 이후에는 값이 바뀌지 않도록 함
- 10행과 28번 행에서 변수 PI의 값을 수정하려고 하지만 오류 발생
class Calculator {
static final double PI = 3.14;
int left, right;
public void setOprands(int left, int right) {
this.left = left;
this.right = right;
//final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없기 때문에 오류가 발생한다.
//Calculator.PI = 6;
}
public void sum() {
System.out.println(this.left + this.right);
}
public void avg() {
System.out.println((this.left + this.right) / 2);
}
}
class Main {
public static void main(String[] args) {
Calculator c1 = new Calculator();
System.out.println(c1.PI);
//final로 지정된 변수에는 한번 값이 할당되면 그 값을 바꿀 수 없기 때문에 오류가 발생한다.
//Calculator.PI = 10;
}
}
final 메서드
- 아래 코드는 클래스 B가, 클래스 A안에 final로 정의된 메서드 b를 상속하려 하기 때문에 에러 발생
class A
{
final void b(){}
}
class B extends A
{
void b(){}
}
final 클래스
- 아래 코드는 클래스 D가 final로 선언된 클래스 C를 상속하려 하기 때문에 에러 발생
final class C
{
final void b(){}
}
class D extends C{}
출처 : 생활코딩
https://edu.goorm.io/learn/lecture/41/바로실습-생활코딩-자바-java/lesson/39279/final