lang/java

java final 키워드

C/H 2007. 6. 20. 04:13

모든 법칙에는 예외가 있다 - final 키워드

때로는 상속에 있어서 부모 클래스에서 원하는 만큼 상속을 제약해야 할 필요가 있다. 이 경우에는 final키워드를 이용한다. final은 쓰이는 용도에 따라 세가지로 구분할 수 있다.

final 클래스

  • 상속으로 자식 클래스를 만들 수  없도록 만든다.
  • 클래스의 선언에 final이 있는 클래스는 상속할 수 없다.
  • 상속 자체를 금지시키는 방법이다.

예> final class Student { } // 더 이상 송속을 하지 않는 클래스 Student


final 메소드

  • 메소드 선언에 있는 final은 하위 클래스에서 오버라이딩 할 수 없다.
  • 일반적인 메소드 들보다 수행 성능이 우수하다.
  • static이나 private가 붙은 메소드들은 자동적으로 final 키워를 사용하고 잇는 것과 같다.

예> public final doXXX() {}

final 변수

  • 변수를 변하지 않는 상수로 만들어 준다.
  • 상수란 변하지 않는 수이기 때문에 메소드를 통해서 상수의 값이 변경되는 부분이 있다면 컴파일러는 에러를 발생시킨다.
  • 상수를 쓰는 일은 주로 단위나 프로그래밍에서 정보를 나타내기 위해서 많이 쓰인다. 

단, 메소드 내부에서 사용되는 final변수는 조금 다르다.
문자열을 상수로 사용할 때는 주로 대문자로 표시한다.

예> final String INFO = "ARRAY IS NOT NULL";
      final int MAX_SIZE = 30;


반응형