final을 사용할 수 있는 경우 – 클래스, 메서드, 멤버 변수, 지역 변수
| 제어 장치 | 목표 | 의미 |
| 결정적인 | 수업 | 확장할 수 없는 불변 클래스가 됩니다. 따라서 최종으로 지정된 클래스는 다른 클래스의 조상이 될 수 없습니다. |
| 방법 | 불변의 방법, final로 표시된 메서드는 재정의로 재정의할 수 없습니다. |
|
| 멤버 변수 | 변수 앞에 final이 추가되면 값을 변경할 수 없는 상수가 됩니다. | |
| 지역 변수 |
package oop0317;
import java.util.Calendar;
//1)final 클래스(종단클래스)
/*
final class Animal{}//class end
class Elephant extends Animal{} 에러. final클래스는 상속 받을 수 없다
*/
//2)final 메소드
class Fruit{
void view() {}
final void disp() {}
}//class end
class Apple extends Fruit{//자식클래스 extends 부모클래스
@Override //<-annotation, 재정의(리폼)
void view() {}
/*
@Override
void disp() {} 에러. final메소드는 더이상 override 할 수 없다
*/
}//class end
public class Test01_final {
public static void main(String() args) {
//final 마지막
//변수 : 변수를 상수화
//함수 : 더 이상 리폼(override 재정의)할 수 없다
//클래스 : 종단클래스. 후손클래스를 생성할 수 없다
int a=3;
a=5; //변수는 다른값으로 대입 가능
final int b=2; //변수의 상수화
//b=4; 에러. final변수는 다른값으로 대입 불가능
System.out.println(Calendar.YEAR); //1
System.out.println(Calendar.MONTH); //2
System.out.println(Calendar.DATE); //5
System.out.println(Calendar.HOUR); //10
System.out.println(Calendar.MINUTE); //12
System.out.println(Calendar.SECOND); //13
/*
class Calendar{
static final int TEAR=1;
static final int MONTH=2;
static final int DATE=5;
}
*/
//Calendar.YEAR=3; 에러. final 변수값은 변경할 수 없다
//Math.PI=3.15; 에러.
}//main() end
}//class end
![[백준] 1764번: [백준] 1764번:](https://ko.fantacola.kr/wp-content/plugins/contextual-related-posts/default.png)