第二十二課 面向對象的基本概念(7)

第二十二課  面向對象的基本概念(7)
一、        構造方法:與類名相同,一旦定義了構造方法,在對象被創建時就可自動調用,它完成對實例變量進行初始化。與一般方法不同的是,構造方法沒有返回類型,它的返回類型是隱式的,就是類型本身。
比如:
public class Car{
public int gearNum;
public int engine;
Car(){
  this.gearNum=0;
  this.engine=0.0;
}
Car(int x,float y){
  this.gearNum=x;
  this.engine=y;
}
}
在上面的例子中我們定義了兩個同名的構造函數,這就是“構造函數的重載”,這個我們以後還要繼續講。
如果我們在定義一個類時,沒有定義和類同名的構造函數,JAVA內部也會生成一個默認的構造函數,但不進行任何操作。
二、        this和super的使用
我們來看一個例子:
public class Leaf{
  private int i=0;
  Leaf increment(){
  i++;
    return this;
  }
  void print(){
    system.out.println(“I=”+i);
  }
  public static void main (string args[]){
    Leaf x=new Leaf();
    x.increment().increment().increment().print();
  }
}
在上面的例子中,this返回的是當前對象的地址,所以可以方便地對同一個對象執行多項操作。
而super和this有着不同的概念,如果子類的對象想使用它父類中的同名屬性和方法時,就可以使用了。
如下例:
public class WordTest{
  int a;
  WordTest(int a){
    this.a=a;
  }
  WordTest(){
    this(5);
  }
}
public class SentenceTest extends WordTest{
  int b;
  SentenceTest{
    super(3);
    this.b=b;
  }
}
在以上程序段中其實this(5)中的this就代表了本類中的第一個構造方法,而在super(3)中調用了父類的構造方法。另外要注意的是super關鍵字必須放在當前構造方法的第一行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章