프로그래밍/JAVA

[JAVA] final

노력의천재 2020. 8. 10. 00:48

final 클래스

final이 클래스 앞에서 사용되면 클래스를 상속받을 수 없음을 지정

 

final class FinalClass { // 이 클래스는 상속 불가
	....
}

class SubClass extends FinalClass { // 컴파일 오류 발생, FinalClass 상속 불가
	....
}

 

final 메소드

final로 메소드를 선언하면 오버라이딩할 수 없는 메소드임을 선언

자식 클래스가 부모 클래스의 특정 메소드를 오버라이딩하지 못하게 하고 무조건 상속받아 사용하게끔 함

 

public class SuperClass {
	protected final int finalMethod() { .... } // finalMethod()는 자식이 오버라이딩 불가
}

class SubClass extends SuperClass { // SubClass가 SuperClass 상속
	protected int finalMethod() { .... } // 컴파일 오류, finalMethod() 오버라이딩 안됨
}

 

final 필드

final로 필드를 선언하면 필드는 상수가 됨

 

public class FinalFieldClass {
	final int ROWS = 10; // 상수 선언, 초기값 10으로 지정
    void f() {
    	int[] intArray = new intArray[ROWS]; // 상수 활용
        ROWS = 30; // 컴파일 오류, final 필드값은 변경할 수 없음
    }
}

 

상수 필드는 한번 초기화되면 값을 변경할 수 없음

final 키워드를 public static과 함께 사용하면 프로그램 전체에서 사용할 수 있는 상수가 됨

 

class SharedClass {
	public static final double PI = 3.14;
}

// SharedClass 내에서 사용할 때
double area = PI * radius * radius;

// 다른 클래스에서 사용할 때
double area = SharedClass.PI * radius * radius;

 

 

출처 : http://www.yes24.com/Product/Goods/61269276
 

명품 JAVA Programming

자바(Java)는 그 이전 시대에 있었던 프로그래밍 언어에서 한 차원 진화된 개념으로 개발된 가히 혁명적 언어이며 플랫폼이다. 한 번 작성된 자바 프로그램은 어느 컴퓨터, 어떤 운영체제에서도 �

www.yes24.com