[Java]공부 final

ohjihyung·2022년 6월 16일
0

상수에 final이 붙는 경우

public class finalTest {
	public static void main(String[] args) {
		final int A = 10; // 초기화 후 
		// A = 20; // 변경불가 
		System.out.println(A); // 읽기 전용
	}
}

맴버 필드에 붙는 경우

//맴버 필드에 적용될 경우 
class test2 {
	final int A = 10;
	void method() {
		//A = 20; // 변경불가 
	}
}
public class finalTest2 {
	public static void main(String[] args) {
		test2 ob = new test2();
		//ob.A = 20; // 변경불가 
		System.out.println(ob.A); //읽기 전용
	}
}

매서드에 붙는 경우

//메서드에 적용될 경우 
class test2 {	
	final void method() {} // 자식에서 재정의 불가
	void method2() {} // 자식에서 재정의가능 
}
class test2Sub extends test2{
	/*
	   @Override
	   void method(){} // 불가능
	 */	
	@Override
	void method2() {
	} 
}
public class finalTest3 {
	public static void main(String[] args) {	
	}
}

클래스에 붙는 경우

//클래스에 적용될 경우 
final class test2 {
	void method() {} 
	void method2() {} 
class test2Sub extends test2{ // 상속불가능	 
}
public class finalTest4 {
	public static void main(String[] args) {
		String str;
	}
}

알아야 할 점

  • final 이 사용되면 final을 사용하겠다는 생각이 아닌
    final 이 붙는 의미를 파악하는게 중요
    ex) class에 final 을 붙여 상속을 못받게 한다
profile
웹 개발자의 기초부터 심화까지

0개의 댓글