final이 사용될 수 있는 곳 - 클래스, 메서드, 멤버변수, 지역변수
제어자 | 대상 | 의미 |
final | 클래스 | 변경될 수 없는 클래스, 확장될 수 없는 클래스가 된다. 그래서 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
'Backend > JAVA' 카테고리의 다른 글
[JAVA] quiz : 성적프로그램 OX 표시하기 (0) | 2023.03.20 |
---|---|
[JAVA] wrapper (0) | 2023.03.20 |
[JAVA] static (0) | 2023.03.16 |
[JAVA] this와 this() (0) | 2023.03.16 |
[JAVA] String (0) | 2023.03.16 |