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

java  Super 用法詳解及實(shí)例代碼

 更新時(shí)間:2017年03月13日 14:40:34   投稿:lqh  
這篇文章主要介紹了java Super 用法詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下

java  Super 用法詳解

 1)有人寫了個(gè)很好的初始化屬性的構(gòu)造函數(shù),而你僅僅想要在其中添加另一些自己新建屬性的初始化,這樣在一個(gè)構(gòu)造函數(shù)中調(diào)用另外一個(gè)構(gòu)造函數(shù),可以避免重復(fù)的代碼量,減少工作量;

2)在一個(gè)構(gòu)造函數(shù)中調(diào)用另外一個(gè)構(gòu)造函數(shù)的時(shí)候應(yīng)該用的是同一塊內(nèi)存空間,在默認(rèn)的構(gòu)造函數(shù)中先初始化變量,調(diào)用另一個(gè)的時(shí)候覆寫已經(jīng)初始化的變量的值;

3)整個(gè)調(diào)用的過程和遞歸調(diào)用函數(shù)有點(diǎn)類似,不斷充氣球,直到整個(gè)氣球膨脹起來,不斷的深層遞進(jìn),遇到停止標(biāo)記,逐層的跳出來。

     寫了段代碼,解釋我上面的敘述:

class JavanTiger {
  int age;   // 年齡
  int hight;  // 身體高度

  public JavanTiger() {
    print();
    this.age=2;  //這里初始化 age 的值 ,但遞歸返回的時(shí)候,這個(gè)值會(huì)被覆寫
  }
  
  public JavanTiger(int age) {
    this();   // 調(diào)用自己的第一個(gè)構(gòu)造函數(shù),下面的兩個(gè)語句數(shù)不執(zhí)行的
    this.age = age;
    print();
  }

  public JavanTiger(int age, int hight) {
    this(age);  // 調(diào)用自己第二個(gè)構(gòu)造函數(shù) ,下面的兩個(gè)語句數(shù)不執(zhí)行的
    this.hight = hight;
    print();
  }

  public void print() { //打印函數(shù)
    System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
  }
  public static void main(String[] args) {
    new JavanTiger(3,3);
  }
}
//output
//I'am a 0歲 0尺高 tiger!
//I'am a 3歲 0尺高 tiger!
//I'am a 3歲 3尺高 tiger!

      個(gè)人理解就是這樣了,可能里面還有問題,比如構(gòu)造函數(shù)遞歸調(diào)用和程序函數(shù)遞歸調(diào)用的機(jī)制是否似乎相同的?構(gòu)造函數(shù)同對象一起產(chǎn)生,也就是同時(shí)會(huì)分配內(nèi)存空間出來,那門這樣的遞歸調(diào)用會(huì)不會(huì)打亂分配內(nèi)存的順序?希望看到的大牛們拍板,給個(gè)最好的解釋。

     今天要總結(jié)的是 super 這個(gè)關(guān)鍵字的使用,super 在構(gòu)造函數(shù)中出現(xiàn)的時(shí)候一般是當(dāng)前這個(gè)類繼承了其他的類,super 的出現(xiàn)就是為了調(diào)用父類的構(gòu)造函數(shù),貼段代碼先

class Tiger {
  int age; // 年齡
  int hight; // 身體高度

  public Tiger() {
    print();
  }

  public void print() {
    System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
  }
}
public class JavanTiger extends Tiger {  
  public JavanTiger() {
    super();  // 調(diào)用父類無參數(shù)的構(gòu)造函數(shù)
  }
  public static void main(String[] args) {
    new JavanTiger();
  }
}

    其實(shí)在類JavanTiger 中的構(gòu)造函數(shù)中的 super()可以不寫,JAVA會(huì)默認(rèn)調(diào)用父類的無參數(shù)的構(gòu)造函數(shù),但如果父類沒有定義無參數(shù)的構(gòu)造函數(shù),沒有語法錯(cuò)誤,程序會(huì)自動(dòng)退出,沒有任何打印語句,這時(shí)候你需要手動(dòng)調(diào)用其他父類的構(gòu)造函數(shù),貼段代碼:

class Tiger {
  int age; // 年齡
  int hight; // 身體高度

  public Tiger(int age) {
  this.age = age;
  print();
  }
  public void print() {
    System.out.println("I'am a " + age + "歲 " + hight + "尺高 tiger!");
  }
}
public class JavanTiger extends Tiger {  
  public JavanTiger() {
    super(1);  // 調(diào)用父類有參數(shù)的構(gòu)造函數(shù)
  }
  public static void main(String[] args) {
    new JavanTiger();
  }
}

      這段代碼中的 super(1)必須要寫進(jìn)去,否則編譯器會(huì)報(bào)錯(cuò)。所以我簡單的總結(jié)了一下,“this()是調(diào)用自己其他的構(gòu)造函數(shù),super()是調(diào)用自己繼承的父類的構(gòu)造函數(shù)“,如果只想調(diào)用默認(rèn)無參數(shù)的父類構(gòu)造函數(shù),不用在子類的構(gòu)造函數(shù)當(dāng)中寫出來,但是實(shí)際編程的時(shí)候,總是會(huì)忽略這一點(diǎn)。

     那門這兩個(gè)關(guān)鍵字能不能同時(shí)出現(xiàn)在子類的一個(gè)構(gòu)造函數(shù)當(dāng)中納?答案肯定是不能。先說下自己的理解:

1)在新建一個(gè)基類的時(shí)候,不論遞歸調(diào)用幾次自身的構(gòu)造函數(shù),最終你都會(huì)去調(diào)用父類的構(gòu)造函數(shù),(不是顯式調(diào)用的話,系統(tǒng)會(huì)調(diào)用默認(rèn)無參數(shù)的父類構(gòu)造函數(shù));

2)JAVA 中規(guī)定使用 this 和 super 時(shí)必須放在構(gòu)造函數(shù)第一行,只有一個(gè)第一行;

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • java書店系統(tǒng)畢業(yè)設(shè)計(jì) 總體設(shè)計(jì)(1)

    java書店系統(tǒng)畢業(yè)設(shè)計(jì) 總體設(shè)計(jì)(1)

    這篇文章主要介紹了java書店系統(tǒng)畢業(yè)設(shè)計(jì),第一步系統(tǒng)總體設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Springboot?通過FastJson實(shí)現(xiàn)bean對象和Json字符串互轉(zhuǎn)問題

    Springboot?通過FastJson實(shí)現(xiàn)bean對象和Json字符串互轉(zhuǎn)問題

    這篇文章主要介紹了Springboot?通過FastJson實(shí)現(xiàn)bean對象和Json字符串互轉(zhuǎn),本文嘗試驗(yàn)證兩種場景給大家詳細(xì)介紹,對Springboot?FastJson實(shí)現(xiàn)bean和Json互轉(zhuǎn)問題,感興趣的朋友一起看看吧
    2022-08-08
  • SpringBoot整合JPA詳細(xì)代碼實(shí)例

    SpringBoot整合JPA詳細(xì)代碼實(shí)例

    這篇文章主要給大家介紹了關(guān)于SpringBoot整合JPA的相關(guān)資料,JPA(Java Persistence API)是Sun官方提出的Java持久化規(guī)范,它為Java開發(fā)人員提供了一種對象/關(guān)聯(lián)映射工具來管理Java應(yīng)用中的關(guān)系數(shù)據(jù),需要的朋友可以參考下
    2024-05-05
  • 解決springcloud 配置gateway 出現(xiàn)錯(cuò)誤的問題

    解決springcloud 配置gateway 出現(xiàn)錯(cuò)誤的問題

    今天給大家分享springcloud 配置gateway 出現(xiàn)錯(cuò)誤的問題,其實(shí)解決方法很簡單,只需要降低springcloud版本,改成Hoxton.SR5就好了,再次改成Hoxton.SR12,也不報(bào)錯(cuò)了,下面給大家展示下,感興趣的朋友一起看看吧
    2021-11-11
  • Java中的base64編碼器

    Java中的base64編碼器

    這篇文章介紹了Java中的base64編碼器,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • java?百度手寫文字識別接口配置代碼

    java?百度手寫文字識別接口配置代碼

    本文通過實(shí)例代碼給大家介紹了java?百度手寫文字識別接口配置方法,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-01-01
  • 深入理解Java多線程與并發(fā)編程

    深入理解Java多線程與并發(fā)編程

    這篇文章主要介紹了Java多線程與并發(fā)編程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java線程創(chuàng)建的四種方式總結(jié)

    Java線程創(chuàng)建的四種方式總結(jié)

    這篇文章主要介紹了Java線程創(chuàng)建的四種方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Java編程獲取當(dāng)前屏幕分辨率的方法示例

    Java編程獲取當(dāng)前屏幕分辨率的方法示例

    這篇文章主要介紹了Java編程獲取當(dāng)前屏幕分辨率的方法,涉及java針對系統(tǒng)硬件信息的相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • SpringBoot文件上傳與下載功能實(shí)現(xiàn)詳解

    SpringBoot文件上傳與下載功能實(shí)現(xiàn)詳解

    文件上傳與下載是Web應(yīng)用開發(fā)中常用的功能之一。接下來我們將討論如何在Spring?Boot的Web應(yīng)用開發(fā)中,如何實(shí)現(xiàn)文件的上傳與下載,感興趣的可以了解一下
    2022-10-10

最新評論

疏勒县| 芷江| 广州市| 嘉黎县| 确山县| 武鸣县| 大港区| 武邑县| 罗平县| 雅安市| 罗源县| 榆社县| 海城市| 淅川县| 浦江县| 遵义市| 延庆县| 通州市| 连州市| 晴隆县| 太和县| 资溪县| 石河子市| 新巴尔虎右旗| 永川市| 新竹市| 阜平县| 乌兰察布市| 通海县| 游戏| 同仁县| 麻江县| 景德镇市| 沅江市| 喜德县| 三穗县| 牡丹江市| 光山县| 白水县| 子洲县| 榆树市|