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

簡(jiǎn)單了解Java類(lèi)成員初始化順序

 更新時(shí)間:2019年11月20日 15:30:15   作者:Archibald Witwicky  
這篇文章主要介紹了簡(jiǎn)單了解Java類(lèi)成員初始化順序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了簡(jiǎn)單了解Java類(lèi)成員初始化順序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

類(lèi)中包含7中成員:

1、靜態(tài)變量 static

2、final靜態(tài)常量 final static

3、靜態(tài)代碼塊 static{} //多個(gè)代碼塊順序執(zhí)行

4、普通變量

5、普通代碼塊 {} //多個(gè)代碼塊順序執(zhí)行

6、構(gòu)造方法

7、普通方法

類(lèi)中成員初始化方式(排出7):

非繼承類(lèi)中:

  • 首先執(zhí)行1/2/3,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí))。
  • 之后執(zhí)行4/5,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí))。
  • 然后執(zhí)行6(默認(rèn)執(zhí)行無(wú)參構(gòu)造方法)。

繼承類(lèi)中:

  • 首先執(zhí)行父類(lèi)1/2/3,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí)),
  • 隨即執(zhí)行子類(lèi)1/2/3,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí))。
  • 之后執(zhí)行父類(lèi)4/5,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí)),
  • 然后執(zhí)行父類(lèi)6(如果子類(lèi)沒(méi)有調(diào)用父類(lèi)構(gòu)造方法,則默認(rèn)調(diào)用父類(lèi)默認(rèn)無(wú)參構(gòu)造方法)。
  • 隨即執(zhí)行子類(lèi)4/5,執(zhí)行順序?yàn)轫樞驁?zhí)行(誰(shuí)在前先執(zhí)行誰(shuí))。
  • 然后執(zhí)行子類(lèi)6。

代碼:

* 每個(gè)屬性設(shè)置斷點(diǎn),啟動(dòng)后可以觀察執(zhí)行順序。

父類(lèi):

package com.lookcoder.haircutmember.vo;

public class TRoleVoAFather {
  private String nameFather = "12";
  private Integer ageFather = 1;
  private int ageiFather = 1;
  {
    System.out.println("father defualt method block2");
  }
  private String defualtInitFather = getDefaultInit();
  {
    System.out.println("father defualt method block1");
  }
  private String getDefaultInit() {
    return "father default init";
  }
  // ----------------------------------------------------------------------------
  private static String aFather = "2";
  private final static String aaFather = getFinalStatic();
  static {
    System.out.println("father default static method2");
  }
  private static Integer bFather = 1;
  static {
    System.out.println("father default static method1");
  }
  private final static Integer bbFather = 2;
  private static String getFinalStatic() {
    return "father final static aa";
  }
  private final static Boolean bo = true;
  // ----------------------------------------------------------------------------
  TRoleVoAFather() {
    System.out.println("father default construct");
  }
  TRoleVoAFather(String name, Integer age) {
    this.nameFather = name;
    this.ageFather = age;
  }
  // ----------------------------------------------------------------------------
  public void abc() {
    System.out.println("abc method!");
  }
}

子類(lèi):

package com.lookcoder.haircutmember.vo;

public class TRoleVoA extends TRoleVoAFather{
  private int agei = 1;
  {
    System.out.println("defualt method block2");
  }
  private Integer age = 1;
  {
    System.out.println("defualt method block1");
  }
  private String name = "12";
  private String defualtInit = getDefaultInit();
  private String getDefaultInit() {
    return "default init";
  }
  // ----------------------------------------------------------------------------
  private final static Integer bb = 2;
  private final static String aa = getFinalStatic();
  private static String getFinalStatic() {
    return "final static aa";
  }
  private final static Boolean bo = true;
  private static String a = "2";
  private static Integer b = 1;
  static {
    System.out.println("default static method2");
  }
  static {
    System.out.println("default static method1");
  }
  private static Integer b11= 1;

  // ----------------------------------------------------------------------------
  TRoleVoA() {
    System.out.println("default construct");
  }
  TRoleVoA(String name, Integer age) {
    super(name, age);
    this.name = name;
    this.age = age;
  }
  // ----------------------------------------------------------------------------
  public void showDefault() {
    System.out.println("show default method!");
  }
}

啟動(dòng)類(lèi):

package com.lookcoder.haircutmember.vo;

public class TRoleVoARun {
  public static void main(String[] args) {
    TRoleVoA tRoleVo = new TRoleVoA("123", 123);
    tRoleVo.showDefault();
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Struts2學(xué)習(xí)筆記(8)-Result常用類(lèi)型

    Struts2學(xué)習(xí)筆記(8)-Result常用類(lèi)型

    這篇文章主要介紹Struts2中Result四種常用的類(lèi)型的用法,希望能給大家做一個(gè)參考。
    2016-06-06
  • list轉(zhuǎn)tree和list中查找某節(jié)點(diǎn)下的所有數(shù)據(jù)操作

    list轉(zhuǎn)tree和list中查找某節(jié)點(diǎn)下的所有數(shù)據(jù)操作

    這篇文章主要介紹了list轉(zhuǎn)tree和list中查找某節(jié)點(diǎn)下的所有數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • SpringBoot接收接口入?yún)⒌姆绞叫〗Y(jié)

    SpringBoot接收接口入?yún)⒌姆绞叫〗Y(jié)

    這篇文章主要給大家介紹了SpringBoot接收接口入?yún)⒌膸追N方式,我們從調(diào)用方的視角去看待這個(gè)問(wèn)題,對(duì)調(diào)用方來(lái)說(shuō),它在調(diào)用接口時(shí)有好幾種傳參方式,下面,將會(huì)依次對(duì)這幾種參數(shù)方式進(jìn)行講解和代碼示例,需要的朋友可以參考下
    2024-01-01
  • SpringBoot 統(tǒng)一異常處理的實(shí)現(xiàn)示例

    SpringBoot 統(tǒng)一異常處理的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot 統(tǒng)一異常處理的實(shí)現(xiàn)示例,目的就是在異常發(fā)生時(shí),盡可能地減少破壞,下面就來(lái)介紹一下,感興趣的可以了解一下
    2024-07-07
  • mybatis-plus指定字段模糊查詢(xún)的實(shí)現(xiàn)方法

    mybatis-plus指定字段模糊查詢(xún)的實(shí)現(xiàn)方法

    最近項(xiàng)目中使用springboot+mybatis-plus來(lái)實(shí)現(xiàn),所以下面這篇文章主要給大家介紹了關(guān)于mybatis-plus實(shí)現(xiàn)指定字段模糊查詢(xún)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • 解析 MyBatis 中 Mapper 生效的來(lái)龍去脈

    解析 MyBatis 中 Mapper 生效的來(lái)龍去脈

    這篇文章主要介紹了解析 MyBatis 中 Mapper 生效的前因后果,介紹了mybatis基本使用及源碼分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • 修改若依框架Token的過(guò)期時(shí)間問(wèn)題

    修改若依框架Token的過(guò)期時(shí)間問(wèn)題

    本文介紹了如何修改若依框架中Token的過(guò)期時(shí)間,通過(guò)修改`application.yml`文件中的配置來(lái)實(shí)現(xiàn),默認(rèn)單位為分鐘,希望此經(jīng)驗(yàn)對(duì)大家有所幫助,也歡迎支持腳本之家
    2025-02-02
  • Java案例之HashMap集合存儲(chǔ)學(xué)生對(duì)象并遍歷

    Java案例之HashMap集合存儲(chǔ)學(xué)生對(duì)象并遍歷

    這篇文章主要介紹了Java案例之HashMap集合存儲(chǔ)學(xué)生對(duì)象并遍歷,創(chuàng)建一個(gè)HashMap集合,鍵是學(xué)號(hào)(String),值是學(xué)生對(duì)象(Student),存儲(chǔ)三個(gè)鍵值對(duì)元素并遍歷,下文具體操作需要的朋友可以參考一下
    2022-04-04
  • 搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn)

    搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn)

    本文主要介紹了搭建Spring MVC和Vue3的應(yīng)用程序的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • 詳解MyBatis中Executor執(zhí)行SQL語(yǔ)句的過(guò)程

    詳解MyBatis中Executor執(zhí)行SQL語(yǔ)句的過(guò)程

    MyBatis中獲取SqlSession時(shí)會(huì)創(chuàng)建執(zhí)行器Executor并存放在SqlSession中,本篇文章將以MapperMethod的execute() 方法作為起點(diǎn),對(duì)MyBatis中的一次實(shí)際執(zhí)行請(qǐng)求進(jìn)行說(shuō)明,并結(jié)合源碼對(duì)執(zhí)行器Executor的原理進(jìn)行闡釋
    2023-07-07

最新評(píng)論

嫩江县| 多伦县| 武定县| 濮阳县| 黄大仙区| 北海市| 商河县| 阜新| 新野县| 青川县| 周宁县| 太谷县| 旬阳县| 颍上县| 金昌市| 岗巴县| 红河县| 长宁区| 类乌齐县| 玉山县| 龙岩市| 虎林市| 西乡县| 杭州市| 永德县| 冀州市| 全州县| 兖州市| 盱眙县| 临武县| 南通市| 昭平县| 盘山县| 东平县| 茂名市| 盱眙县| 沂源县| 淮滨县| 东安县| 娄底市| 福泉市|