[Java] final

SeongEon Kim·2022년 5월 2일
0

JAVA

목록 보기
28/52

추상이 상속을 강제하는 것이라면 final은 상속/변경을 금지하는 규제다.

  1. final 필드
    필드와 변수는 같은 의미다. 실행되는 과정에서 한번 값이 정해진 이후에는 변수 내의 값이 바뀌지 않도록 하는 규제다. 아래 코드를 통해 구체적으로 알아보자.
    package org.opentutorials.javatutorials.finals;
    

class Calculator {
static final double PI = 3.14;
//PI라는 변수를 정의했지만 변경될 수 있었다. 그러나 final로 지정해버리면 확정이다.
int left, right;

public void setOprands(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);
}

}

public class CalculatorDemo1 {

public static void main(String[] args) {

    Calculator c1 = new Calculator();
    System.out.println(c1.PI);
    //Calculator.PI = 10;
    //여기서도 오류가 나온다.


}

}


2. final 메소드
 final 메소드는 final 변수만큼 사용 빈도가 높지 않다. 아래 코드를 통해 살펴보자.
 

package org.opentutorials.javatutorials.finals;

class A{
final void b(){}
}
class B extends A{
void b(){}
}

profile
꿈을 이루는 사람

0개의 댓글