posts - 4,  comments - 0,  trackbacks - 0

          什么是是JAVA構(gòu)造函數(shù)  

          每創(chuàng)建一個類的實例都去初始化它的所有變量是乏味的。如果一個對象在被創(chuàng)建時就完成了所有的初始工作,將是簡單的和簡潔的。因此,Java在類里提供了一個特殊的成員函數(shù),叫做構(gòu)造函數(shù)(Constructor)。 
            一個構(gòu)造函數(shù)是對象被創(chuàng)建時初始對象的成員函數(shù)。它具有和它所在的類完全一樣的名字。一旦定義好一個構(gòu)造函數(shù),new運算符一起使用,創(chuàng)建對象時就會自動調(diào)用它。構(gòu)造函數(shù)沒有返回類型,即使是void類型也沒有。這是因為一個類的構(gòu)造函數(shù)的返回值的類型就是這個類本身。構(gòu)造函數(shù)的任務(wù)是初始化一個對象的內(nèi)部狀態(tài),所以用new操作符創(chuàng)建一個實例后,立刻就會得到一個清楚、可用的對象。 

          構(gòu)造方法是一種特殊的方法,具有以下特點。 
          1)構(gòu)造方法的方法名必須與類名相同。 
          2)構(gòu)造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。 
          3)構(gòu)造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數(shù)傳給對象的域。 
          4)構(gòu)造方法不能由編程人員調(diào)用,而要系統(tǒng)調(diào)用。 

          5構(gòu)造函數(shù)不能被直接調(diào)用,必須通過new運算符在創(chuàng)建對象時才會自動調(diào)用(即在new的時候就開始執(zhí)行構(gòu)造函數(shù)里面的語句);而一般的方法是在程序執(zhí)行到它的時候被調(diào)用的.
          6)一個類可以定義多個構(gòu)造方法,如果在定義類時沒有定義構(gòu)造方法,則編譯系統(tǒng)會自動插入一個無參數(shù)的默認構(gòu)造器,這個構(gòu)造器不執(zhí)行任何代碼。 
          7)構(gòu)造方法可以重載,以參數(shù)的個數(shù),類型,或排列順序區(qū)分。

          8當(dāng)定義一個類的時候,如果程序員不創(chuàng)建構(gòu)造函數(shù),則Java編譯器就會提供一個默認的不帶參數(shù)的構(gòu)造函數(shù)。創(chuàng)建對象時系統(tǒng)就會自動調(diào)用這個默認的構(gòu)造函數(shù)來創(chuàng)建類的對象。如

          Public Class Person{

          Int age;

          String name;

          //默認的構(gòu)造函數(shù)為(java編輯器會自動生成的)

             Public Person(){

          }

          Person p=new Person();

          p.age=10;

          p.name=”張三”;

          }

          java 構(gòu)造函數(shù)的執(zhí)行過程

          類初始化時構(gòu)造函數(shù)調(diào)用順序:
           
          1)初始化對象的存儲空間為零或null值;
           
          2)調(diào)用父類構(gòu)造函數(shù);
           
          3)按順序分別調(diào)用類成員變量和實例成員變量的初始化表達式;

          public class Demo_1 {

           

              /**

               * @param args

               */

             

             

           

              public static void main(String[] args){

              

                    new Money();

                    new Dollar();

                    new Rmb();

              

              }

          }

          class Money{

          public Money(){

           System.out.println("Money is construct");

          }

          }

          class Dollar{

          public Dollar(){

             

              System.out.println("Dollar is construct!");

            

             }

          }

          class Rmb{

          public Rmb(){

           System.out.println("RMB is construct");

          }

          }

           

          輸出結(jié)果:
          Money is construct

          Dollar is construct!

          RMB is construct

          posted on 2011-11-05 09:59 愛燕神鷹 閱讀(3178) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          <2011年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 景泰县| 当涂县| 横山县| 鄂尔多斯市| 来宾市| 武穴市| 石景山区| 汉沽区| 辽源市| 慈溪市| 沅陵县| 定安县| 拉萨市| 威信县| 称多县| 迁西县| 津南区| 阜康市| 定边县| 涪陵区| 奉节县| 濮阳市| 林甸县| 宁武县| 福海县| 开阳县| 灌南县| 南投市| 宁乡县| 和平区| 麻城市| 永济市| 习水县| 玉田县| 海丰县| 玉门市| 靖州| 五寨县| 兰西县| 乐安县| 乳山市|