Java字段初始化規律

  首先先附上一段代碼:public class InitializeBlockDemo {函數

public static void main(String[] args) { InitializeBlockClass obj=new InitializeBlockClass(); System.out.println(obj.field); obj=new InitializeBlockClass(300); System.out.println(obj.field); } } class InitializeBlockClass{
  //
  
  //public int field=100;
  // { field=200; } public int field=100; public InitializeBlockClass(int value){ this.field=value; } public InitializeBlockClass(){ } }

  下面開始介紹一下,在Java中字段的初始化規律,一般使用三種方法:類成員定義的默認值,類的構造方法,類的初始化塊。this

  一、成員定義的默認值spa

public int field=100;

  一般咱們在定義一個變量時,每每會賦予一個初始值。所以在建立類的對象時,便能給於初值。code

  二、類的構造方法對象

public InitializeBlockClass(int value){ this.field=value; } public InitializeBlockClass(){ }

  類的構造方法,也就是C/C++所指的的「構造函數」,當建立一個對象的時候,其類的構造方法便會被自動調用。構造方法的命名方式很簡單,與類名相同,沒有返回值。根據參數的不一樣能夠進行重載。當咱們沒有定義構造方法時,Java編譯器會默認一個沒有參數的構造方法,但當咱們定義了構造方法,系統將不會提供默認的構造方法。所以在定義構造方法時,必定知足調用所須要的條件。blog

  三、類的初始化塊編譯器

{ field=200; }

  在類中使用「{」,「}」將語句包含,在內對成員進行初始化。it

  當咱們在調用時,其調用順序又會是什麼呢?通過對上述函數的改造,運行,咱們能夠獲得結果,其運行順序於調用的時間有關,取決於調用時成員的結果如上述程序,當調用的構造方法無參數時,其結果爲field的最後得數 100,而將初始化塊和定義順序調過來時,其答案變爲 200。在調用有參數的構造方法時,其答案便成了參數的結果 300。編譯

相關文章
相關標籤/搜索