關(guān)于Java中修飾符的總結(jié)(fina除外)
public/protected/private
public表示公開,private表示私有,protected表示保護(hù),什么都不寫表示默認(rèn)default。
方法:
public protected default private
√ √ √ √ 同一類中
√ √ √ × 同一包中
√ √ × × 子類中
√ × × × 不同包中
成員變量:
考慮的安全性和健壯性的問題,成員變量一般為私有,并對外提供一些public的方法修改成員變量,在修改的方法中對輸入進(jìn)行判斷和控制。
Private成員變量只能在類的內(nèi)部使用。Public的成員變量可以在類的外部使用。
類:
類的權(quán)限修飾符只有不加和public兩種。不加表示只有同一個包的類可以訪問,public類所有的其他類都可以訪問。
Static
意為靜態(tài),用于修飾成員變量、方法、代碼塊。
靜態(tài)成員變量
靜態(tài)成員變量隨著類的加載而加載,多個對象共享該靜態(tài)成員變量??慈缦麓a:
靜態(tài)方法
當(dāng)修飾方法的時候,這個方法隨著類的加載而加載,直接通過類名來調(diào)用。很多工具類中的方法都是靜態(tài)的,直接通過“類名.方法名”調(diào)用。不過靜態(tài)方法中不能使用非靜態(tài)成員變量和非靜態(tài)方法。
靜態(tài)代碼塊
靜態(tài)代碼塊(java的類在產(chǎn)生對象的時候,在調(diào)用構(gòu)造方法的時候,還會調(diào)用構(gòu)造代碼塊)。
請看下列代碼(證明構(gòu)造方法、構(gòu)造語句、靜態(tài)構(gòu)造語句運行的先后順序):
需要注意的是:
(1)靜態(tài)方法不能調(diào)用非靜態(tài)方法, 靜態(tài)的方法是在構(gòu)造該類時加載的,類加載時會加載靜態(tài)的方法;此時非靜態(tài)方法還沒有加載,類初始化后才加載非靜態(tài)方法;所以靜態(tài)方法不能調(diào)用非靜態(tài)方法。通過在靜態(tài)方法的內(nèi)部創(chuàng)建對象(或形式參數(shù)來傳遞的對象)來間接訪問是完全可以的。
(2)java中的main方法必須寫成static的,因為,在類加載時無法創(chuàng)建對象,靜態(tài)方法可以不通過對象調(diào)用。所以在類加載時就可以通過main方法入口來運行程序。
注意:父類中是靜態(tài)方法,子類中不能覆蓋為非靜態(tài)方法。在符合覆蓋規(guī)則的前提下,在父子類中,父類中的靜態(tài)方法可以被子類中的靜態(tài)方法覆蓋,但是沒有多態(tài)。
一個類在什么時候被加載?時機(jī) (延遲加載,能不加載就不加載
(1)new 一個對象的時候,加載
這個很好理解,不解釋了。(2)沒有創(chuàng)建對象,訪問類中靜態(tài)成員(方法和屬性)
(3)聲明一個類的引用,不加載(4)創(chuàng)建子類,先加載父類,再加載子類
(5)父類中的公開靜態(tài)方法,子類繼承,使用子類的類名調(diào)用此方法,加載父類
Abstract
這個修飾符表示抽象,可以用在方法和類前面。
抽象方法表示,類應(yīng)該具備此功能,但不同的子類應(yīng)該有不同的實現(xiàn)方式,所以沒有定義具體如何做。具體如何做由子類自己實現(xiàn)。子類在實現(xiàn)所有抽象方法后才能new對象。
如有類的內(nèi)部有抽象方法,則類也必須是抽象的。抽象類不能直接new對象。抽象類中可以有非抽象方法。
以上就是小編為大家?guī)淼年P(guān)于Java中修飾符的總結(jié)(fina除外)的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
Java并發(fā)工具類CountDownLatch CyclicBarrier使用詳解
這篇文章主要為大家介紹了Java并發(fā)工具類CountDownLatch CyclicBarrier使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-0610個SpringBoot參數(shù)驗證你需要知道的技巧分享
參數(shù)驗證很重要,是平時開發(fā)環(huán)節(jié)中不可少的一部分,那么在Spring?Boot應(yīng)用中如何做好參數(shù)校驗工作呢,本文提供了10個小技巧,你知道幾個呢2023-03-03使用JDBC4.0操作XML類型的字段(保存獲取xml數(shù)據(jù))的方法
jdbc4.0最重要的特征是支持xml數(shù)據(jù)類型,接下來通過本文重點給大家介紹如何使用jdbc4.0操作xml類型的字段,對jdbc4.0 xml相關(guān)知識感興趣的朋友一起看下吧2016-08-08SpringBoot快速設(shè)置攔截器并實現(xiàn)權(quán)限驗證的方法
本篇文章主要介紹了SpringBoot快速設(shè)置攔截器并實現(xiàn)權(quán)限驗證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01