Access Modifier: public, protected, private
Access Level: public, default, protected, private
Non-access Modifier: final, abstract, static, strictfp, native, transient, volatile, synchronized
使用范围:
Class Modifier: public, default; final, abstract, strictfp
Instance variable: public,default, protected, private; static, final, transient, volatile
Local variable: final
Instance Method: public, default, protected, private; static, abstract, final, strictfp, native, synchronized
Inner class: abstract, final, static (static 的Inner class 用法特殊,不需要instantiate outer class就能直接使用, 但他只能使用outer class里的static member)
Access Level 的visiblity:
Visibilty public protected default priavte
From the same class Y Y Y Y
From any class in the same package Y Y Y N
From a subclass in the same package Y Y Y N
From a subclass outside the package Y Y N N
From any non-subclass outside package Y N N N