第二十二課 面向對象的基本概念(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關鍵字必須放在當前構造方法的第一行。
第二十二課 面向對象的基本概念(7)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.