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
'JAVA' 카테고리의 다른 글
Java의 데이터 타입 (0) | 2023.05.31 |
---|---|
자바의 Math (0) | 2023.05.29 |
두 객체가 동일한 HashCode를 가지면? (0) | 2023.05.27 |
==와 equals()의 차이 (0) | 2023.05.26 |
JDK 와 JRE의 차이점 (0) | 2023.05.25 |