欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單了解Java類成員初始化順序

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

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

類中包含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、普通方法

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

非繼承類中:

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

繼承類中:

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

代碼:

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

父類:

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!");
  }
}

子類:

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!");
  }
}

啟動類:

package com.lookcoder.haircutmember.vo;

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

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

相關(guān)文章

  • 基于@ComponentScan注解的使用詳解

    基于@ComponentScan注解的使用詳解

    這篇文章主要介紹了@ComponentScan注解的使用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring JdbcTemplate整合使用方法及原理詳解

    Spring JdbcTemplate整合使用方法及原理詳解

    這篇文章主要介紹了Spring JdbcTemplate整合使用方法及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • springboot整合騰訊云短信開箱即用的示例代碼

    springboot整合騰訊云短信開箱即用的示例代碼

    這篇文章主要介紹了springboot整合騰訊云短信開箱即用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 詳解如何通過Java實(shí)現(xiàn)類似Nginx代理

    詳解如何通過Java實(shí)現(xiàn)類似Nginx代理

    最近遇到一個(gè)問題,在內(nèi)網(wǎng)環(huán)境中部署的項(xiàng)目需要調(diào)用外網(wǎng)完成一些應(yīng)用,一般情況我們可以通過增加一臺機(jī)器,部署到可以訪問外網(wǎng)的服務(wù)器上,然后內(nèi)網(wǎng)直接連接該機(jī)器通過Nginx進(jìn)行代理即可,所以本文介紹了如何通過Java實(shí)現(xiàn)類似Nginx代理,需要的朋友可以參考下
    2024-08-08
  • 關(guān)于stream().sorted()以及java中常用的比較器排序

    關(guān)于stream().sorted()以及java中常用的比較器排序

    這篇文章主要介紹了關(guān)于stream().sorted()以及java中常用的比較器排序,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • java+Okhttp3調(diào)用接口的實(shí)例

    java+Okhttp3調(diào)用接口的實(shí)例

    這篇文章主要介紹了java+Okhttp3調(diào)用接口的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • go語言題解LeetCode88合并兩個(gè)有序數(shù)組示例

    go語言題解LeetCode88合并兩個(gè)有序數(shù)組示例

    這篇文章主要為大家介紹了go語言題解LeetCode88合并兩個(gè)有序數(shù)組示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • Spring Boot實(shí)現(xiàn)對文件進(jìn)行壓縮下載功能

    Spring Boot實(shí)現(xiàn)對文件進(jìn)行壓縮下載功能

    在Web應(yīng)用中,文件下載功能是一個(gè)常見的需求,特別是當(dāng)你需要提供用戶下載各種類型的文件時(shí),本文將演示如何使用Spring Boot框架來實(shí)現(xiàn)一個(gè)簡單而強(qiáng)大的文件下載功能,需要的朋友跟隨小編一起學(xué)習(xí)吧
    2023-09-09
  • 詳解Spring AOP自定義可重復(fù)注解沒有生效問題

    詳解Spring AOP自定義可重復(fù)注解沒有生效問題

    本文主要介紹了Spring AOP自定義可重復(fù)注解沒有生效問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Spring Boot文件上傳最新解決方案

    Spring Boot文件上傳最新解決方案

    本文給大家分享Spring Boot文件上傳功能的示例代碼,包括單文件上傳示例和多文件上傳,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-07-07

最新評論