您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何分析modifier修飾符,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
修飾符總結(jié) Modifiers
函數(shù)修飾符始終在返回值類型之前!!!
變量修飾符始終在變量類型之前!!!
--------------------------------------------------------------------------------
ClassModifier: one of
Annotation public protected private
abstract static final strictfp
外部類: 不可被 protected, private, static 和 final 修飾
成員內(nèi)部類: 都可以
非成員內(nèi)部類: 都不可以
FieldModifier: one of
Annotation public protected private
static final transient volatile
MethodModifier: one of
Annotation public protected private
abstract static final synchronized native strictfp
ConstructorModifier: one of
Annotation public protected private
InterfaceModifier: one of
Annotation public protected private
abstract static strictfp
VariableModifier: one of
Annotation final
--------------------------------------------------------------------------------
class field method constructor interface variable
Annotation √ √ √ √ √ √
public/protected/private √ √ √ √ √ ×
abstract/strictfp √ × √ × √ ×
static √ √ √ × √ ×
final √ √ √ × × √
transient/volatile × √ × × × ×
synchronized/native × × √ × × ×
--------------------------------------------------------------------------------
Annotation
以上都可以
public/protected/private
權(quán)限修飾符, 除了 variable 都可以 ->???br/>abstract/strictfp
class/interface/method
static
除了 constructor 和 variable 都可以 -> 常考
final
除了 constructor 和 interface 都可以
transient/volatile
只能修飾 field
synchronized/native
只能修飾 method
--------------------------------------------------------------------------------
final 與 abstract 是沖突的.
--------------------------------------------------------------------------------
/*
包與包之間成員和構(gòu)造器的訪問權(quán)限總結(jié):
public protected 無修飾符 private
同一個類中 ok ok ok ok
同一個包中 ok ok ok
不同包*子類 ok ok
不同包中 ok
不同包成員訪問的前提: 被訪問的類必須是 public, 且被訪問的成員也必須是 public 的
不同包中的子類還可以直接訪問父類中 protected 的成員和構(gòu)造器
不同包訪問, 有2層權(quán)限限制:
第1層是類的權(quán)限限制, 類的權(quán)限可以是 public/無權(quán)限修飾符2種
第2層是成員的權(quán)限限制, 成員的權(quán)限可以是 public/protected/無權(quán)限修飾符/private 等4種
必須類的權(quán)限允許訪問, 才考慮成員的權(quán)限是否允許訪問!!!
實(shí)際編程中, 訪問的類一般都是不同包的:
類是 public 的, 構(gòu)造器是 public 的,
允許被不同包的類創(chuàng)建對象; 否則禁止被不同包的類創(chuàng)建對象
類是 public 的, 構(gòu)造器是 protected 的
只允許被不同包的類繼承(就是設(shè)計(jì)來被繼承的, 此時不允許被不同包的類創(chuàng)建對象)
類是 public 的, 構(gòu)造器是 private 的(一般也是 final 的)
不允許被創(chuàng)建對象(包括本包的類都不行), 此時一般提供 public 方法獲取類的對象
不同包中, protected 的作用就是限制成員和構(gòu)造器只能被子類訪問;
同一包中, protected 修飾成員變量和構(gòu)造函數(shù)時沒任何作用, 修飾成員函數(shù)時僅僅限于覆蓋.
*/
關(guān)于如何分析modifier修飾符就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。