Java類 初始化塊

來源:互聯網
上載者:User

標籤:class   []   .sh   改變   www.   變數賦值   不能   靜態初始化   tar   

java裡初始化一個類的對象,通過初始化快或者構造方法進行資料賦值。與其相關的執行代碼有這麼幾種:

  • 靜態初始化塊
  • 初始化塊
  • 構造方法
靜態初始化塊

靜態初始化塊只在類載入時執行一次,同時靜態初始化塊只能給靜態變數賦值,不能初始化普通的成員變數。

非靜態初始化塊

非靜態初始化塊在每次初始化執行個體對象的時候都執行一次,可以給任意變數賦值。

構造方法

在每次初始化執行個體對象時調用。

重點:執行順序->
  1. 在載入類時執行一次靜態初始化塊(之後不再調用)。
  2. 在每次初始化執行個體對象時:先執行非靜態初始化塊,再執行構造方法。

若是概念不好懂,請看如下執行個體:

public class InitializationClass {
String name; // 聲明變數name
String sex; // 聲明變數sex
static int age;// 聲明靜態變數age

// 構造方法
public InitializationClass() {
System.out.println("通過構造方法初始化name");
name = "tom";
}

// 構造方法
public InitializationClass(String name) {
System.out.println("通過參數構造方法初始化name");
this.name = name;
}

// 構造方法
public InitializationClass(int age) {
System.out.println("通過構造方法改變static InitializationClass.age");
InitializationClass.age = age;
}

// 構造方法
public InitializationClass(String name, String sex) {
System.out.println("通過構造方法初始化name age");
this.name = name;
this.sex = sex;
}

// 初始化塊
{
System.out.println("通過初始化塊初始化sex");
sex = "男";
}

// 靜態初始化塊
static {
System.out.println("通過靜態初始化塊初始化age");
age = 20;
}

public void show() {
System.out.println("姓名:" + name + ",性別:" + sex + ",年齡:" + age);
System.out.println("------------------------------");
}

public static void main(String[] args) {

// 建立對象
InitializationClass obj1 = new InitializationClass("qiuhua");
obj1.show();

InitializationClass obj2 = new InitializationClass(10);
obj2.show();

InitializationClass obj3 = new InitializationClass("jing", "女");
obj3.show();
}
}

  

通過靜態初始化塊初始化age
通過初始化塊初始化sex
通過參數構造方法初始化name
姓名:qiuhua,性別:男,年齡:20
------------------------------
通過初始化塊初始化sex
通過構造方法改變static InitializationClass.age
姓名:null,性別:男,年齡:10
------------------------------
通過初始化塊初始化sex
通過構造方法初始化name age
姓名:jing,性別:女,年齡:10
------------------------------

 

轉:https://www.cnblogs.com/Berryxiong/p/6245100.html

 

Java類 初始化塊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.