자바 제한자 정리 : Modifires Matrix in Java

자바를 입문하면 가장 처음에 다루는 것중 하나인 제한자를 정리하는 차원에서 각 제한자별로 사용가능한 곳과 그렇지 않은 곳을 구분해
일람을 작성해 봤습니다. 흔히 접하는 접근 제한자 외에도 잘 사용하지 않는 native라던지 strictft 같은 제한자도 함께 표기합니다.

대상 변수 메소드 생성자 클래스 인터페이스
제한자 외부 내부 외부 내부
abstract X O X O O O O
final O O X O O X X
native X O X X X X X
private O O O X O X O
protected O O O X O X O
public O O O O O O O
static O O X X O X O
synchronized X O X X X X X
transient O X X X X X X
volatile O X X X X X X
strictfp X O X O O O O


제한자 사용 규칙 ( 곰곰히 따져보면 아래 룰과 같이 될 수 밖에 없습니다.)
 - 메소드는 public, protected, private, default 중 오직 하나의 접근 제한자를 갖습니다.
 - 클래스는 abstract와 final을 동시에 지정할 수 없습니다.
 - abstract 메소드는 private, static, final, native, strictfp, synchronized 중 어떤 제한자도 사용할 수 없습니다.
 - 메소드는 native, strictfp를 동시에 지정할 수 없습니다.
 - abstract와 native 메소드는 body를 갖지 않습니다.
     예) abstract void someMethos();
     예) native void someMethos();
 - abstract 메소드를 갖는 클래스는 해당 abstract메소드를 구현해야만 합니다.
 - final 변수는 volatile일 수 없습니다.

java_langspec-3.0.pdf

Java Language Spec 3.0




위와 관련한 Sun의 공식 문서는 아래 url에서 참조하실 수 있습니다.
 Java Language Specification SE 3.0
  final Variables
  Class Modifires
  Field Modifires
  Constructor Modifires
  Interface Modifires
  Evolution of Classes
  FP-strict Expressions
2008/12/15 18:32 2008/12/15 18:32
Trackback Address:이 글에는 트랙백을 보낼 수 없습니다