第二章:簡單 Java 程式解析
第三章:變數與資料型態
第四章:運算子、運算式與敘述
第五章:選擇性敘述與迴圈
第十章:實例變數與函數、類別變數與函數
Powered By GitBook
建構元間的呼叫 - 透過this
在建構元也可以運用 this 達到建構元間的呼叫。
以下範例為建構元利用this的技術來相互呼叫:
1
class CCircle
2
{
3
private String color;
4
private double pi=3.14;
5
private double radius;
6
7
public CCircle() //這是一個沒有引數建構元
8
{
9
this("Green",1.0); //這行將會呼叫有兩個引數的建構元
10
System.out.println("CCircle() 呼叫");
11
}
12
public CCircle(String str, double r) //這是一個有兩個引數的建構元
13
{
14
System.out.println("CCircle(String,double) 呼叫");
15
color=str;
16
radius=r;
17
}
18
public void show()
19
{
20
System.out.println("color="+color+", Radius="+radius);
21
System.out.println("area="+pi*radius*radius);
22
}
23
}
24
public class class_constructor_3
25
{
26
public static void main(String args[])
27
{
28
CCircle cir1=new CCircle();
29
cir1.show();
30
}
31
}
Copied!
以下針對這程式解說一下:
主程式部分,直接呼叫沒有引數的建構元
1
CCircle cir1=new CCircle();
Copied!
讓我們看到沒有引數的建構元
1
public CCircle() //這是一個沒有引數建構元
2
{
3
this("Green",1.0); //這行將會呼叫有兩個引數的建構元
4
System.out.println("CCircle() 呼叫");
5
}
Copied!
讓我們再看到有兩個引數的建構元
1
public CCircle(String str, double r) //這是一個有兩個引數的建構元
2
{
3
System.out.println("CCircle(String,double) 呼叫");
4
color=str;
5
radius=r;
6
}
Copied!
剛剛在沒有引數的建構元當中:
1
this("Green",1.0);
Copied!
把color 設為Green,radius設為1.0; 因為要呼叫下方 擁有兩個引數的建構元, 因此以this() 來呼叫。

注意

this ( ) 要寫在建構元的敘述第一行;以下情況是不行的:
1
public CCircle() //這是一個沒有引數建構元
2
{
3
System.out.println("CCircle() 呼叫");
4
this("Green",1.0); //這行寫法是錯誤的
5
}
Copied!
正確寫法為:
1
public CCircle() //這是一個沒有引數建構元
2
{
3
this("Green",1.0); //這行將會呼叫有兩個引數的建構元
4
System.out.println("CCircle() 呼叫");
5
}
Copied!
Last modified 9mo ago
Copy link
Contents
注意