자바 제한자 정리 : 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
이 글의 관련글
  • CLASSPATH에 없는 클래스 로딩
  • 소켓통신 서버/클라이언트 통신시 IO Blocking 상태에 빠지는 코드와 해결 방안
  • WebRowSet 을 이용한 JDBC 활용하기 2부
  • 자바 어플리케이션(jar)을 실행파일(exe)로 만들기 :: launch4j (2)
  • JAVA 5 한글 api
  • 넷빈즈(Netbeans) 실행하기 - JDK 설정 v1.0
  • 썬은 G1(Garbage First) Garbage Collector를 상용화할 것인가?
  • 넷빈즈(NetBeans) 실행하기 - 모듈 업데이트 v1.0
  • Eclipse 3.3 or NetBeans 6.0?
  • 자바 파일복사 코드와 성능 1. :: Java File Copy Code & Perfomance Issue. part 1 (4)
  • Ajax와 Java EE의 통합
  • Yahoo Buzz Game 에서 자바 IDE 부문에서 넷빈즈가 1위네요.. (2)
  • 2008/12/15 18:32 2008/12/15 18:32
    Trackback Address:http://www.yunsobi.com/blog/trackback/451
    [로그인][오픈아이디란?]