<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## Java編程那些事兒59——類(二) 鄭州游戲學院陳躍峰 出自:[http://blog.csdn.net/mailbomb](http://blog.csdn.net/mailbomb) ##### 8.2.2.3 構造方法聲明 構造方法(Constructor),也稱作構造函數、構建器等,是初學者在學習時最容易混淆的概念之一。下面首先講述構造方法和方法的區別。 構造方法和方法無任何關系,只是在翻譯時名稱比較類似罷了。而且構造方法和方法的功能不同,聲明和調用的語法也不相同。 構造方法的功能:實現類這種數據類型的變量的初始化。由于類是一種復合數據類型,而復合數據類型的變量也比較復雜,所以專門需要對該類變量進行初始化,則語法上提供了專門的結構——構造方法。這就是構造方法出現的原因。而方法實現的是邏輯的功能,對應于邏輯上的算法,更多的是實現程序邏輯。所以構造方法是語法結構,而方法是邏輯功能,兩者之間根本無關。 構造方法聲明的語法格式: ~~~ ?????????????????? 訪問控制符構造方法名稱(參數列表){ ??????????????????????????? 構造方法體; ?????????????????? } ~~~ 在該語法中,訪問控制符指聲明的構造方法被訪問的權限,構造方法名稱是標識符,語法上要求構造方法的名稱必須類名相同,后續小括號內部是參數列表,其語法格式和方法參數列表的語法格式相同。 下面是構造方法的示例: ~~~ ?????????????????? public class Box{ ??????????????????????????? int length; ??????????????????????????? int width; ??????????????????????????? int height; ? ??????????????????????????? public Box(){ ???????????????????????????????????? length = 10; ???????????????????????????????????? width = 10; ???????????????????????????????????? height = 10; ??????????????????????????? } ? ??????????????????????????? public Box(int l,int w,int h){ ???????????????????????????????????? length = l; ???????????????????????????????????? width = w; ???????????????????????????????????? height = h; ??????????????????????????? } ?????????????????? } ~~~ 在該Box類中,聲明了兩個構造方法,一個沒有參數,一個包含三個int類型的參數。在沒有參數的構造方法中,將三個屬性的值都初始化為10。帶參數的構造方法中,可以傳遞進來三個參數,然后在構造方法內部依次把參數的值賦值給屬性。 通常情況下,構造方法的聲明放在屬性聲明和方法聲明的中間。 一個類內部的構造方法可以有任意多個,但是要求這些構造方法不能相同。因為在一個類內部構造方法的名稱都是相同的,所以只要參數列表相同的構造方法都是相同的構造方法。例如以下兩個構造方法是相同的: ?????????????????? public? Test(int a,int[] b){} ?????????????????? public? Test(int b,int[] a){} 如果一個類聲明中不包含構造方法的聲明,則系統會自動為該類添加一個構造方法,當然如果類中已聲明了構造方法則系統不會添加,這個系統自動添加的構造方法一般被稱為默認構造方法,其聲明格式如下: ~~~ ?????????????????? public 構造方法名稱(){} ???????? 所以以下兩個代碼是相同的: ?????????????????? public class DefaultConstructor{ ??????????????????????????? int ?a; ???????? ???????? } ???????? 和 ?????????????????? public class DefaultConstructor{ ??????????????????????????? int? a; ??????????????????????????? public DefaultConstructor(){} ?????????????????? } ~~~ 在第一個代碼中,沒有聲明構造方法,則系統自動添加默認的構造方法,而第二個代碼中聲明的構造方法和默認構造方法的結構一致,所以兩個代碼在功能上是完全相同的。 總之,構造方法是系統提供的一個結構,該結構的功能是實現對于類的變量的初始化,可以根據邏輯的需要聲明對應的構造方法,并在構造方法內部根據需要進行具體的初始化。 ##### 8.2.2.4 面向對象基礎使用 下面以一個簡單的示例來描述面向對象的基本使用,主要是類聲明的相關語法,以及基礎的類設計的知識。 使用面向對象的方式來描述房屋的結構,要求如下: (1) 門:(顏色為紅色、可以被推開和關閉) (2) 窗戶:(顏色為白色、有一塊玻璃(透明色、可以卸下)、可以被推開和關閉) (3) 地:(由100塊地板磚組成) (4) 地板磚:(黃色、長1米、寬1米) 說明:其中紅色用1代替,白色用2代替,黃色用3代替透明色用0代替。 在使用面向對象描述時,將其中的名詞轉換為類,將該類內部的特征轉換為屬性,將該類內部的功能轉換為方法,在構造方法內部實現對于屬性的初始化。 則在該要求中,抽象的類一共有5個:門、窗戶、玻璃、地和地板磚。其中的顏色作為對應類的屬性,推開和關閉作為對應類的方法。前面介紹過類是一種數據類型,則可以聲明類類型的變量,并可以將該變量作為類的屬性,這種類和類的關系在面向對象中稱作使用關系。則按照該思路實現的代碼如下: ~~~ ?????????????????? /** ???????????????? ?* 門的類 ???????? * 文件名:Door.java ???????????????? ?*/ public class Door { ??????????????????????????? /**顏色*/ ???????? ?????????????????? int color; ???????? ?????????????????? public Door(){ ???????????????????????????????????? color = 1;? //初始化顏色 ???????? ?????????????????? } ??????????????????????????? public void open(){} ???????? ?????????????????? public void close(){} } /** ?* 窗的類 ?* 文件名:Window.java ?*/ publicclass Window { ???????? /**顏色*/ ???????? int color; ???????? public Window(){ ?????????????????? color = 2;? //初始化顏色 ???????? } publicvoid open(){} ???????? publicvoid close(){} ? } /** ?* 玻璃類 ?* 文件名:Glass.java ?*/ publicclass Glass { ???????? /**顏色*/ ???????? int color; ???????? public Glass(){ ?????????????????? color = 0; //初始化顏色 ???????? } ???????? publicvoid remove(){} } /** ?* 地板類 ?* 文件名:Floor.java ?*/ public class Floor { ???????? FloorBrick[] fb; ???????? public Floor(){ ?????????????????? fb = new FloorBrick[100]; ?????????????????? for(int i = 0;i < fb.length;i++){ ??????????????????????????? fb[i] = new FloorBrick();? //初始化每個元素 ?????????????????? } ???????? } } /** ?* 地板磚類 ?* 文件名:FloorBrick.java ?*/ publicclass FloorBrick { ???????? /**顏色*/ ???????? int color; ???????? /**長度*/ ???????? int length; ???????? /**寬度*/ ???????? int width; ???????? public FloorBrick(){ ?????????????????? color = 3; //初始化顏色 ?????????????????? length = 1; //初始化長度 ?????????????????? width = 1; //初始化寬度 ???????? } } ~~~ 說明:在Floor類的代碼中涉及到對于類類型的變量初始化的問題,相關語法將在后續詳細介紹。 在該示例中,使用面向對象的思想描述了要求的房屋結構,并以Java語言語法的格式將面向對象的思想轉化為具體的代碼,從而實現對于面向對象技術的基本使用。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看