java 構造器初始化

thinking in java的一些代碼:http://www.mindviewinc.com/Books/TIJ4/java

構造函數的做用是在建立對象的時候初始化對象函數

  1. 構造器必須與類同名(若是一個源文件中有多個類,那麼構造器必須與公共類同名)
  2. 每一個類能夠有一個以上的構造器
  3. 構造器能夠有0個、1個或1個以上的參數
  4. 構造器沒有返回值
  5. 構造器老是伴隨着new操做一塊兒調用
package init;

/** * @author sawshaw *對象初始化 */ public class ObjectInit { private int a,b; public ObjectInit(){ //不帶參數的默認構造器 System.out.println("調用了無參構造函數"); } public ObjectInit(int i){ //帶參數的初始化 System.out.println("調用了有參構造函數"); } //對象初始化對屬性賦值 public ObjectInit(int a,int b){ this.a=a; this.b=b; } public static void main(String[] args) { ObjectInit o=new ObjectInit(); o.getValue(); ObjectInit o1=new ObjectInit(6); o1.getValue(); ObjectInit o2=new ObjectInit(6,7); System.out.println(o2.a+","+o2.b); } public void getValue(){ System.out.println("===="); } }

缺省構造器 若是已經定義了一個構造器不管是否有參仍是無參,編譯器不會自動爲你再建立默認的無參構造器,因此若是this

package init;

/** * @author sawshaw *對象初始化 */ public class ObjectInit { private int a,b; /*public ObjectInit(){ //不帶參數的默認構造器 System.out.println("調用了無參構造函數"); }*/ public ObjectInit(int i){ //帶參數的初始化 System.out.println("調用了有參構造函數"); } //對象初始化對屬性賦值 public ObjectInit(int a,int b){ this.a=a; this.b=b; } public static void main(String[] args) { ObjectInit o=new ObjectInit(); o.getValue(); ObjectInit o1=new ObjectInit(6); o1.getValue(); ObjectInit o2=new ObjectInit(6,7); System.out.println(o2.a+","+o2.b); } public void getValue(){ System.out.println("===="); } }

註釋默認的構造器,那麼ObjectInit o=new ObjectInit();是會報錯的,由於沒有默認的無參構造器spa

相關文章
相關標籤/搜索