Web | Coding | Blog | SOHO

[Java]類別 class – 建構元的多載

先前提過函數的多載、類別函數成員的多載,相信也都要熟悉什麼是多載。
在此再次說明多載是什麼:

多載 (overloading)

  1. 函數名稱相同,引數個數不同
  2. 引數型態不同,引數個數相同

相似功能的函數,以相同的名稱來命名之;透過不同的引數個數,或是不同的型態,
來執行相對應的功能。

以下範例為建構元利用多載的技術所撰寫的:

class CCircle
{
   private String color;
   private double pi=3.14;
   private double radius;

   public CCircle()                    // 這是一個沒有引數的建構元
   {
      System.out.println("constructor CCircle() called");
      color="Green";
      radius=1.0;
   }
   public CCircle(String str, double r)      // 這是一個有兩個引數的建構元
   {
      System.out.println("constructor CCircle(String,double) called");
      color=str;
      radius=r;
   }
   public void show()
   {
      System.out.println("color="+color+", Radius="+radius);
      System.out.println("area="+pi*radius*radius);
   }
}
public class class_constructor_2
{
   public static void main(String args[])
   {
      CCircle cir1=new CCircle();         // 建立物件
      cir1.show();

      CCircle cir2=new CCircle("Blue",4.0);  // 建立物件,並設兩個值
      cir2.show();
   }
}

在主程式方面可以了解以下事情:

若在建立物件的過程中:無設值,將會自動對應到沒有引數的建構元

CCircle cir1=new CCircle();

若在建立物件的過程中:設定兩個值,將會對應到有兩個引數的建構元

CCircle cir2=new CCircle("Blue",4.0);

[JAVA]類別 CLASS – 初次見面 PART 2 篇章提到如何建立類別的物件;

同樣的概念:建立物件時,會呼叫建構元;若想要呼叫沒有引數的建構元,則不需設值;
若想呼叫有引數的建構元,在建立的過程中 也必須設初值。

這就是為什麼建構元擁有設定初值的功能。

(詳見:[Java]類別 class – 認識 建構元)



參考書籍:Java 7 教學手冊
Java 學習日誌 (點此閱讀所有 Java日誌)


如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;
另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:

Comments

comments

如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:


© 2017 4xCode™ | Design:SC 站長