最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java修飾符abstract與static及final的精華總結(jié)

 更新時間:2022年04月09日 10:12:55   作者:學(xué)廢的小白!  
abstract、static、final三個修飾符是經(jīng)常會使用的,對他們的概念必須非常清楚,弄混了會產(chǎn)生些完全可以避免的錯誤,比如final和abstract不能一同出現(xiàn),static和abstract不能一同出現(xiàn),下面我們來詳細(xì)了解

修飾符abstract (抽象的)

一、abstract可以修飾類

(1) 被abstract修飾的類稱為抽象類
(2) 語法:

          abstract class 類名{}

(3) 特點(diǎn):抽象類不能單獨(dú)創(chuàng)建對象,但是可以聲明引用

          抽象類類名  引用名;

(4) 抽象類可以定義成員變量和成員方法
(5) 抽象類有構(gòu)造方法,用于創(chuàng)建子類對象時,jvm默認(rèn)創(chuàng)建一個父類對象;
    抽象的構(gòu)造方法應(yīng)用在jvm創(chuàng)建父類對象時應(yīng)用。

二、abstract可以修飾方法

(1) 被asbtract修飾的方法被稱為抽象方法
(2) 語法:

    訪問修飾符 abstract  返回值類型 方法名(形參列表);

    注意:abstract和訪問修飾符沒有先后順序要求
(3) 特點(diǎn):抽象方法只有聲明部分,沒有方法的實現(xiàn)部分(連{}都沒有,以 ; 結(jié)尾)
(4) 注意:抽象方法只能定義在抽象類中;但是抽象類中即可以定義抽象方法也可以定義非抽象方法

抽象類的子類:

(1) 語法:

    class 子類類名 extends 抽象類類名{}

(2) 要求:如果子類不想成為抽象類,則必須覆蓋抽象類父類中的所有抽象方法(目的:將抽象方法實現(xiàn)部分補(bǔ)上);
    如果子類沒有覆蓋父類中所有抽象方法,必須定義為抽象類,同時不能創(chuàng)建對象
(3) 應(yīng)用:抽象類體現(xiàn)了多態(tài)的應(yīng)用

    抽象類類名 引用名 = new 子類類名();  // 父類型的引用存儲了子類型的對象

修飾符之static (靜態(tài)的) 

一、static可以修飾屬性

(1) 被static修飾的屬性稱為靜態(tài)屬性、靜態(tài)變量、類變量
    注意:成員變量分為:實例變量和靜態(tài)變量(或是靜態(tài)屬性、類變量)
(2) 位置:定義在類以內(nèi),方法以外,被static修飾
(3) 語法:

         訪問修飾符 static 數(shù)據(jù)類型 變量名;
         訪問修飾符 static 數(shù)據(jù)類型 變量名=值;

    注意:訪問修飾符和static之間沒有先后順序要求,但是都必須在數(shù)據(jù)類型的前面
(4) 特點(diǎn):靜態(tài)屬性基于類而存在,和創(chuàng)建多少對象無關(guān),被所有對象都共享
(5) 使用:
        a. 通過 對象名.靜態(tài)屬性名
        b. 直接通過 類名.靜態(tài)屬性名  ——>建議

    注意:實例變量必須通過 對象名.實例變量名 進(jìn)行訪問

二、static可以修飾方法

(1) 被static修飾的方法稱為靜態(tài)方法
(2) 語法:

    訪問修飾符 static 返回值類型 方法名(形參列表){
            // 方法實現(xiàn)、方法體
    }

    注意:訪問修飾符和 static之間沒有先后順序要求    
(3) 使用:
    a. 直接通過 類名.靜態(tài)方法名(實參); --》建議
    b. 通過對象名.靜態(tài)方法(實參); -->不建議
(4) 靜態(tài)方法語法細(xì)節(jié):
    a. 靜態(tài)方法中只能訪問本類的靜態(tài)成員(靜態(tài)屬性和靜態(tài)方法)
    b. 靜態(tài)方法中不能直接訪問本類的非靜態(tài)成員(實例變量+非靜態(tài)方法)
    c. 靜態(tài)方法中不能this/super關(guān)鍵字
    d. 靜態(tài)方法能被子類繼承
    e. 靜態(tài)方法只能被靜態(tài)方法覆蓋,靜態(tài)方法沒有體現(xiàn)多態(tài)的應(yīng)用
(5) 靜態(tài)方法應(yīng)用場景:通常將工具類中方法設(shè)置為靜態(tài)方法,為了方便使用者調(diào)用

在這里插入圖片描述

三、static可以修飾初始化代碼塊

(1) 被static修飾初始化代碼塊稱為靜態(tài)代碼塊
(2) 靜態(tài)代碼塊的位置:定義在類以內(nèi),方法以為,被static修飾的{}

        class 類名{
               static{
                      // 靜態(tài)代碼塊
               }
        }

(3) 作用:在類加載的時候,按照和靜態(tài)屬性定義的先后順序完成對靜態(tài)屬性的初始化工作    
(4) 類加載:
    a. 概念:jvm第一次使用一個類的時候,通過classPath找到類對應(yīng)的.class文件;
            并且對.class文件進(jìn)行讀取該類的信息;
            (包名、類名、父類、屬性、構(gòu)造方法、成員方法等);
            將讀取信息保存到j(luò)vm內(nèi)存中,一個類只一次類加載。
            
    b. 類加載的時機(jī):(什么叫jvm第一次使用一個類)
           I. 第一個訪問該類靜態(tài)成員(靜態(tài)屬性和靜態(tài)方法)
           II. 第一次創(chuàng)建該類對象:先完成類加載;再完成對象的創(chuàng)建
           III. 子類類加載,先導(dǎo)致其父類類加載:先加在父類,再加載子類
             ① 第一次調(diào)用子類靜態(tài)屬性或靜態(tài)方法
             ② 第一次創(chuàng)建子類對象:先進(jìn)行類加載,再完成對象的創(chuàng)建
                   加載:先完成父類的類加載,再完成子類的類加載
           
                   創(chuàng)建對象 :先完成父類對象的創(chuàng)建,再子類對象的創(chuàng)建

修飾符之final (最終的)

一、final可以修飾變量

final可以修飾變量(局部變量、成員變量—>實例變量和靜態(tài)變量)

(1) 特點(diǎn):被final修飾的變量,作用范圍內(nèi)常量,只允許一次賦值,可以被發(fā)多使用 
    注意:final修飾變量一旦賦值,不能修改

(2) 語法:

    訪問修飾符 final 數(shù)據(jù)類型 變量名 = 值;

(3) final修飾的實例不再具有默認(rèn)值,開發(fā)人員對其賦值的機(jī)會如下:
        a. 定義的時候?qū)ζ涑跏蓟?,賦值

                  final int a = 3;

          b. 利用構(gòu)造方法完成賦值

                   class A{
                       final int a ;
                       public A(int a){
                             this.a=a;
                       }
                   }

(4) final修飾的靜態(tài)變量不再具有默認(rèn)值,開發(fā)人員對其賦值的機(jī)會如下:
        a. 在定義時對其初始化,賦值
        b. 利用靜態(tài)代碼塊對其初始化

                class A{
                    final static int n;
                    static{
                        n = 5;
                    }
                }

(5) final修飾的引用,代表引用中存儲對象不能改變

二、final可以修飾方法

可以被子類繼承,但是不允許子類覆蓋.

三、final可以修飾屬性

被final修飾的類不能被繼承,即沒有子類.

到此這篇關(guān)于Java修飾符abstract與static及final的精華總結(jié)的文章就介紹到這了,更多相關(guān)Java abstract static final內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java中的15種鎖

    Java中的15種鎖

    在讀很多并發(fā)文章中,會提及各種各樣鎖如公平鎖,樂觀鎖等等,這篇文章小編將向大家介紹是各種鎖的分類,感興趣的小伙伴可以參考下面文章的具體內(nèi)容
    2021-09-09
  • SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過程詳解

    SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過程詳解

    這篇文章主要介紹了SPRINGBOOT讀取PROPERTIES配置文件數(shù)據(jù)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 詳細(xì)解析Java中抽象類和接口的區(qū)別

    詳細(xì)解析Java中抽象類和接口的區(qū)別

    這篇文章主要介紹了Java中抽象類和接口的區(qū)別詳解,需要的朋友可以參考下
    2014-10-10
  • SpringBoot如何優(yōu)雅的輸出異常信息

    SpringBoot如何優(yōu)雅的輸出異常信息

    在Java中,異常(Exception)是Java程序在運(yùn)行過程中出現(xiàn)的一種特殊情況,會中斷正常的程序流程,異常可以是運(yùn)行時錯誤,也可以是編程錯誤,本文將給大家詳細(xì)的介紹一下SpringBoot如何優(yōu)雅的輸出異常信息,需要的朋友可以參考下
    2023-09-09
  • 修改jar包package目錄結(jié)構(gòu)操作方法

    修改jar包package目錄結(jié)構(gòu)操作方法

    這篇文章主要介紹了修改jar包package目錄結(jié)構(gòu)操作方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Java Map如何根據(jù)key取value以及不指定key取出所有的value

    Java Map如何根據(jù)key取value以及不指定key取出所有的value

    這篇文章主要介紹了Java Map如何根據(jù)key取value以及不指定key取出所有的value,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • SpringMVC接收復(fù)雜集合對象(參數(shù))代碼示例

    SpringMVC接收復(fù)雜集合對象(參數(shù))代碼示例

    這篇文章主要介紹了SpringMVC接收復(fù)雜集合對象(參數(shù))代碼示例,舉接收List<String>、List<User>、List<Map<String,Object>>、User[]、User(bean里面包含List)幾種較為復(fù)雜的集合參數(shù),具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 詳解SpringBoot與SpringCloud的版本對應(yīng)詳細(xì)版

    詳解SpringBoot與SpringCloud的版本對應(yīng)詳細(xì)版

    這篇文章主要介紹了詳解SpringBoot與SpringCloud的版本對應(yīng)詳細(xì)版,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • springboot打包jar和war包的教程圖解

    springboot打包jar和war包的教程圖解

    這篇文章主要介紹了springboot打包jar和war包的方法,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API

    JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API

    這篇文章主要給大家介紹了關(guān)于JAVA進(jìn)階篇之詳細(xì)了解File文件的常用API的相關(guān)資料,File用于表示文件系統(tǒng)中的一個文件或目錄,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11

最新評論

南华县| 长兴县| 比如县| 三明市| 莫力| 阳高县| 宿松县| 洪湖市| 商丘市| 扶绥县| 壤塘县| 灵山县| 百色市| 平原县| 广德县| 长葛市| 杨浦区| 永济市| 桃园县| 景宁| 西安市| 剑川县| 永城市| 六安市| 固安县| 皮山县| 宣汉县| 砀山县| 五家渠市| 江油市| 溧水县| 苗栗县| 婺源县| 西城区| 新龙县| 江阴市| 勐海县| 安图县| 丰顺县| 彩票| 岳阳市|