「Java」基礎19:修飾符有哪些?

2020-12-21 劉小愛

前幾天學過方法重寫,也就是說,一個類繼承至父類,子類可以將父類的方法重寫。

但有的時候父類的方法要求固定,不能被更改。

該怎麼辦?

這就得學到一個新的修飾符了。

一、final修飾符

final,翻譯成中文就是「不可更改的 」。

顧名思義,它是一個修飾符,用於修改不可更改的內容。

被final修飾的類:不能被繼承。被final修飾的方法:不能被重寫。被final修飾的變量:不能被重新賦值。被final修飾的常量:名稱一般都有書寫規範,所有字母都大寫。多個單詞之間,使用下劃線進行分割。1.修飾類和方法

①final修飾類,類不能被繼承。

既然不能被繼承,那final類裡的方法也無法被重寫。

②final修飾方法,方法不能被重寫。

非final類中,也可以存著final方法。

註:其中final方法是可以被重載的(同名不同參)

2.修飾局部變量

③用final修飾基本數據類型局部變量。

只能賦值一次,不能再更改了,編譯會報錯。

基本數據類型不能更改的是值。

④用final修飾引用數據類型局部變量。

只能創建對象一次,不能再次創建對象,編譯會報錯。

引用數據類型不能更改的是對象的地址。

該對象的值是可以通過對應的setXXX()方法更改的。

3.修飾成員變量

成員變量和局部變量有一個區別在於:

成員變量是有默認值的。

所以用final修飾成員變量,它就不再有默認值了,必須一步直接賦值 。

初始化方式有兩種,只能二選一:

⑤直接初始化賦值。

⑥構造方法賦值。

注意:用setXXX()方法無法賦值。

二、權限修飾符

public這個關鍵字太常見了,它就是一個權限修飾符。

在Java語言裡面有四種權限修飾符。

其實看字面意思也蠻好理解的:

①public:公共的。

可以修飾類、成員變量、成員方法、構造方法。被public修飾的成員,可以在任何一個類中被調用,不管同包或不同包。一般情況下,類的構造方法、成員方法會使用public,方便創建對象和調用方法。②protected:受保護的。

可以修飾成員變量,成員方法,構造方法,不能修飾類(此處指外部類、內部類不考慮)。被protected修飾的成員,只能被同包下的其他類訪問。如果不同包下的類要訪問被protected修飾的成員,這個類必須是其子類。③default:默認的。

可以修飾類,成員變量,成員方法,構造方法。若是沒有加權限修飾符,其訪問能力就是default權限。被默認權限修飾後,其只能被本類以及同包下的其他類訪問。不同包的子類都不行。④private:私有的。

可以修飾成員變量,成員方法,構造方法,不能修飾類(此處指的是外部類,內部類不加以考慮)。被private修飾的成員只能在其修飾的本類中訪問,在其他類中不能調用,但是被private修飾的成員可以通過set和get方法向外界提供訪問方式 。private類型的方法都默認為是final方法,因而也不能被子類重寫權限是從大到小的:

public> protect >default>private

三、abstract和static修飾符

修飾符除了權限修飾符和final修飾符,常見的還有abstract和static修飾符。

這兩個關鍵字前面都學過,做一個回顧:

1.abstact修飾類

表明這是一個抽象類。

抽象類不能創建對象生成實例,需要使用子類實例化

2.abstact修飾方法

表明這是一個抽象方法,只有方法名,沒有方法體。

需要子類重寫。

3.static修飾方法

靜態方法只能訪問靜態變量。

靜態方法可以用類名直接調用。

4.static修飾變量

也可稱為類變量,局部變量不能被static修飾。

也可以用類名直接調用。

5.static修飾代碼塊

隨著類的加載而加載一次,相當於初始化賦值。

總結:

相關焦點

  • 「002期」JavaSE面試題(二):基本數據類型與訪問修飾符
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇導讀大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,
  • 「零基礎學JAVA」基礎篇 第二章 JAVA編程初體驗
    「零基礎學JAVA」工具篇 JDK的安裝教程(WINDOWS版)「零基礎學JAVA」工具篇 環境變量的配置(WINDOWS版)輸入「cd Desktop」進入到桌面(MyProgram.java文件所在位置)緊接著,我們來編譯剛才寫的源程序輸入「javac MyProgram.java」這時,會在桌面上生成一個MyProgram.class
  • Java基礎學習:java中整數類型變量
    Java中有三種變量類型,我們先敲一下,然後比這下圖挨個來看, 主要有以下特點, 在類中聲明,但在方法、構造方法和語句塊之外,用static修飾; 類只擁有類變量的一份拷貝; 儲存在靜態存儲區; 在第一次被訪問時創建,在程序結束時銷毀; 可以通過:ClassName.VariableName
  • JavaScript-正則表達式中的修飾符和對象有哪些?
    二、正則表達式進階2.1 修飾符修飾符是正則表達式進行字符串檢索時【檢索規則】的制定者之一。修飾符規定了正則應按照何種方式進行檢索。常見的修飾符類型有兩種:i 、gi修飾符,表示正則檢索內容時不區分大小寫例如:使用i修飾符,在str中檢索frank出現的第一次下標var str = 'Hello Frank!
  • Java面向對象之final、abstract抽象、和變量生命周期
    java裡final修飾的類有很多,比如八大基本數據類型的包裝類(Byte,Character、Short、Integer、Long、Float、Double、Boolean)和String等。通常開發中,我們建議final修飾的常量名用大寫字母表示,多個單詞之間使用下劃線(_)連接:如:public static final String USER_NAME = "用戶名";且在Java中多個修飾符之間是沒有先後關係的,以下的三種修飾符排列順序都是ok的:
  • Java基礎面試題簡單總結
    >答:java中的保留字,現在沒有在java中使用11、數組有沒有length()這個方法?如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法34、談談final, finally, finalize的區別答:final—修飾符(關鍵字)如果一個類被聲明為
  • C/C++編程筆記:C++的修飾符類型
    C++ 允許在 char、int 和 double 數據類型前放置修飾符。修飾符用於改變基本類型的含義,所以它更能滿足各種情境的需求。
  • Google 出品 Java 編碼規範,科學又權威,強烈推薦!
    1.1術語說明術語class可表示一個普通類,枚舉類,接口或是annotation類型( @interface)術語comment只用來指代實現的注釋(implementation comments),我們不使用「documentation comments」一詞,而是用
  • 重學Java 設計模式:實戰策略模式「模擬多種營銷類型優惠券,折扣...
    四、案例場景模擬場景模擬;商品支付使用營銷優惠券「在本案例中我們模擬在購買商品時候使用的各種類型優惠券(滿減、直減、折扣、n元購)」這個場景幾乎也是大家的一個日常購物省錢渠道,購買商品的時候都希望找一些優惠券,讓購買的商品更加實惠。
  • 論Java中的抽象類與接口
    ——瘋狂的Java講義abstract不能用於修飾Field,不能用於修飾局部變量,即沒有抽象變量、沒有抽象Field等說法;abstract也不能用於修飾構造器,沒有抽象構造器,抽象類裡定義的構造器只能是普通構造器。
  • 「戴眼鏡一點都不宅!」依照「臉型」挑鏡框,修飾還能更有型!
    但事實上,如果選對眼鏡,它其實不但無損你的帥度,還可以幫你修飾臉型缺點。臉太圓的,帶對眼鏡,臉看起來會比較尖;臉太尖的,也能看起來圓一點、有分量一點。總而言之,眼鏡不但不會阻礙你的帥,反而還可以幫你變有型。所以一定要好好挑選! 臉型1:圓臉 如果型男的臉型是圓的,那就建議你挑選「長方型鏡框」(較細長)。因為它的角度,能打破臉型造成的圓形視覺效果。
  • N5文法04「名詞-連體修飾語」
    四、連體修飾語彙總一、文法句型連體詞或連體形 + 名詞 = 連體修飾語この辭書 這個字典(連體詞+名詞)その小説 那本小說(連體詞+名詞)走 る人 奔跑的人(動詞連體形+名詞)二、什麼是連體修飾語?
  • Java基礎教程:Java基礎知識之List接口
    接下來,我們一起學習Collection中的常用幾個子類(java.util.List集合、java.util.Set集合)。List接口介紹java.util.List接口繼承自Collection接口,是單列集合的一個重要分支,習慣性地會將實現了List接口的對象稱為List集合。
  • JAVA 基礎:JAVA開發環境搭建
    打開Path變量,在變量值最前加入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;(方法同上)4.驗證:運行cmd,輸入java -version,顯示java版本則成功。或使用 vi /etc/profile 命令,將上面的代碼,拷貝到 profile文件中,輸入:shift+I 快捷鍵 ,輸入完成 按esc 退出編輯模式,保存並退出 shift+: 鍵,輸入wq5.使用source命令更新配置文件 : source /etc/profile6.輸入java
  • 「JAVA」萬字長篇詳述字節碼對象與反射機制完成動態編程
    java命令時,該命令將會啟動一個JVM進程,在這個JVM進程中,會保存有該JVM創建的所有線程、變量、對象,這些線程、變量、對象會共享該JVM的內存區域。「JAVA」萬字長篇詳述字節碼對象與反射機制完成動態編程類的加載過程中也會對字節碼文件進行驗證
  • 重學Java 設計模式:實戰迭代器模式「模擬公司組織架構樹結構關係...
    多數人在這並不會感覺有多難,也不會認為做不出來。因為這樣的例子,有老師的指導、有書本的例子、有前人的經驗。但隨著你的開發時間越來越長,要解決更複雜的問題或者技術創新,因此在網上搜了幾天幾夜都沒有答案,這個時候是否想過放棄,還是一直堅持不斷的嘗試一點點完成自己心裡要的結果。
  • Colette 的「Santos y Cielos」系列珠寶,歐洲古董護身符
    美國珠寶品牌Colette 推出的「Santos y Cielos」,西班牙語中意為「聖人與天堂」,這個系列作品的特別之處在於搭配了形式豐富的歐洲古董護身符掛飾,帶有強烈的18世紀到19世紀歐洲琺瑯首飾、浮雕首飾的風格特色,同時也給人一種維多利亞時期悼念首飾的感覺。
  • JavaScript正則表達式「程式設計師培養之路第十二天」
    正則內部有個lastIndex屬性,這個屬性記錄每一次匹配後的索引位置,該屬性與"g"修飾符存在以下關係:沒有g修飾:lastIndex屬性的值始終為0,每次執行匹配僅查找字符串中第一個匹配的項。圖五有g修飾:找到匹配的項後lastIndex的值被設置為匹配內容的下一個字符的索引,用來標識下次執行匹配時開始查找的位置。如果找不到匹配的項lastIndex的值會被設置為0。
  • 「原創」Java並發編程系列06|你不知道的final
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫final在Java中是一個保留的關鍵字,可以修飾變量、方法和類。那麼fianl在並發編程中有什麼作用呢?本文就在對final常見應用總結基礎上,講解final並發編程中的應用。
  • 我敲了 13 年代碼卻成了一個養蜂人 年輕的「外行人」有哪些不一樣?
    符洪川已經做了 13 年的IT工程師,5 年前卻開始「養蜜蜂」創業。  這樣的選擇其實不難理解。一方面符洪川的兩代父輩都是養蜂人,從小耳濡目染。另一方面,全球養蜂人超過 30 萬,蜂蜜市場增長率 15%,而且中國進口的產品增長率超過 50%,如此高速發展的市場,世界上卻只有一家蜂蜜上市企業。  這裡面存在巨大的造富機會。