(자바) 최종

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