• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

      2. Java中類的設計技巧有哪些

        時間:2024-10-21 20:56:51 JAVA認證 我要投稿
        • 相關推薦

        Java中類的設計技巧有哪些

          在Java面向對象編程的過程中,類的設計是一個很有挑戰性的工作,不同的人可能對于類的理解不一樣,設計出來的類也可能不一樣,下文yjbys小編為大家分享的是關于java類的設計技巧,希望對大家學習java有幫助!

          1)一定將數據設計為私有。

          最重要的是:絕對不要破壞封裝性。有時候,需要編寫一個訪問器方法或更改器方法,但是最好還是保持實例域的私有性。很多慘痛的經驗告訴我們,數據的表示形式很可能會改變,但它們的使用方式卻不會經常發生變化。當數據保持私有時,它們的表示形式的變化不會對類的使用者產生影響,即使出現bug也易于檢測。

          2)一定要對數據初始化。

          Java不對局部變量進行初始化,但是會對對象的實例域進行初始化。最好不要依賴于系統的默認值,而是應該顯式地初始化所有的數據,具體的初始化方式可以是提供默認值,也可以是在所有構造器中設置默認值。

          3)不要在類中使用過多的基本數據類型。

          就是說,用其他的類代替多個相關的基本數據類型的使用。這樣會使類更加易于理解且易于修改。例如,用一個稱為Address的新的類替換下面的Customer類中的實例域:

          private String street;

          private String city;

          private String state;

          private int zip;

          這樣,可以很容易地順應地址的變化,例如,需要增加對國際地址的處理。

          4)不是所有的域都需要獨立的域訪問器和域更改器。

          或許,需要獲得或設置雇員的薪金。而一旦構造了雇員對象,就應該禁止更改雇用日期,并且在對象中,常常包含一些不希望別人獲得或設置的實例域,例如,在Address類中,存放州縮寫的數組。

          5)使用標準格式進行類的定義。

          一定采用下面的順序書寫類的內容:

          公有訪問特性部分

          包作用域訪問特性部分

          私有訪問特性部分

          在每一部分中,應該按照下列順序列出:

          實例方法

          靜態方法

          實例域

          靜態域

          畢竟,類的使用者對公有接口要比對私有的實現細節更感興趣,并且對方法要比對數據更感興趣。

          但是,哪一種風格更好并沒有達成共識。Sun的程序設計風格建議Java程序設計語言先書寫域,后書寫方法。無論采用哪種風格,重要的一點是要保持一致。

          6)將職責過多的類進行分解。

          這樣說似乎有點含糊不清,究竟多少算是"過多"?每個人的看法不同。但是,如果明顯地可以將一個復雜的類分解成兩個更為簡單的類,就應該將其分解(但另一方面,也不要走極端。設計10個類,每個類只有一個方法,顯然也太小了)。

          下面是一個反面的設計示例。

          public class CardDeck// bad design

          {

          public CardDeck(){…}

          public void shuffile(){…}

          public void draw(){…}

          public int getTopValue(){}

          public int getTopSuit(){}

          private int[] value;

          private int[] suit;

          }

          實際上,這個類實現了兩個獨立的概念:一副牌(含有shuffle方法和draw方法)和一張牌(含有查看面值和花色的方法)。另外,引入一個表示單張牌的Card類。現在有兩個類,每個類完成自己的職責:

          public class CardDeck// better design

          {

          public CardDeck(){…}

          public void shuffile(){…}

          public void draw(){…}

          public int getTopValue(){}

          public int getTopSuit(){}

          private Card[] cards;

          }

          public class Card {

          public Card(int value,int aSuit){}

          public int getTopValue(){}

          public int getTopSuit(){}

          private int value;

          private int suit;

          }

          7)類名和方法名要能夠體現它們的職責。

          與變量應該有一個能夠反映其含義的名字一樣,類也應該如此(在標準類庫中,也存在著一些含義不明確的例子,如:Date類實際上是一個用于描述時間的類)。

          命名類名的良好習慣是采用一個名詞(Order)、前面有形容詞修飾的名詞(RushOrder)或動名詞(有"-ing"后綴)修飾名詞(例如,BillingAddress)。對于方法來說,習慣是訪問器方法用小寫get開頭(getSalary),更改器方法用小寫的set開頭(setSalary)。

        《&.doc》
        将本文的Word文档下载到电脑,方便收藏和打印
        推荐度:
        点击下载文档

        【Java中類的設計技巧有哪些】相關文章:

        java中File類有哪些使用方法03-14

        平面設計技巧有哪些03-18

        海報設計技巧有哪些03-20

        演講中的控場技巧有哪些03-08

        2017編導類藝考技巧有哪些03-10

        平面設計學習技巧有哪些03-13

        兒童房間設計技巧有哪些03-15

        發面技巧有哪些03-29

        唱歌的技巧有哪些03-14

        在线咨询
        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 亚洲欧美综合国产精品二区 | 日韩r级视频在线观看 | 在线精品视频一区二区三区 | 三a视频在线观看日本 | 思思99热这里只有精品6 | 综合激情丁香久久狠狠男同 |

            Java中類的設計技巧有哪些

              在Java面向對象編程的過程中,類的設計是一個很有挑戰性的工作,不同的人可能對于類的理解不一樣,設計出來的類也可能不一樣,下文yjbys小編為大家分享的是關于java類的設計技巧,希望對大家學習java有幫助!

              1)一定將數據設計為私有。

              最重要的是:絕對不要破壞封裝性。有時候,需要編寫一個訪問器方法或更改器方法,但是最好還是保持實例域的私有性。很多慘痛的經驗告訴我們,數據的表示形式很可能會改變,但它們的使用方式卻不會經常發生變化。當數據保持私有時,它們的表示形式的變化不會對類的使用者產生影響,即使出現bug也易于檢測。

              2)一定要對數據初始化。

              Java不對局部變量進行初始化,但是會對對象的實例域進行初始化。最好不要依賴于系統的默認值,而是應該顯式地初始化所有的數據,具體的初始化方式可以是提供默認值,也可以是在所有構造器中設置默認值。

              3)不要在類中使用過多的基本數據類型。

              就是說,用其他的類代替多個相關的基本數據類型的使用。這樣會使類更加易于理解且易于修改。例如,用一個稱為Address的新的類替換下面的Customer類中的實例域:

              private String street;

              private String city;

              private String state;

              private int zip;

              這樣,可以很容易地順應地址的變化,例如,需要增加對國際地址的處理。

              4)不是所有的域都需要獨立的域訪問器和域更改器。

              或許,需要獲得或設置雇員的薪金。而一旦構造了雇員對象,就應該禁止更改雇用日期,并且在對象中,常常包含一些不希望別人獲得或設置的實例域,例如,在Address類中,存放州縮寫的數組。

              5)使用標準格式進行類的定義。

              一定采用下面的順序書寫類的內容:

              公有訪問特性部分

              包作用域訪問特性部分

              私有訪問特性部分

              在每一部分中,應該按照下列順序列出:

              實例方法

              靜態方法

              實例域

              靜態域

              畢竟,類的使用者對公有接口要比對私有的實現細節更感興趣,并且對方法要比對數據更感興趣。

              但是,哪一種風格更好并沒有達成共識。Sun的程序設計風格建議Java程序設計語言先書寫域,后書寫方法。無論采用哪種風格,重要的一點是要保持一致。

              6)將職責過多的類進行分解。

              這樣說似乎有點含糊不清,究竟多少算是"過多"?每個人的看法不同。但是,如果明顯地可以將一個復雜的類分解成兩個更為簡單的類,就應該將其分解(但另一方面,也不要走極端。設計10個類,每個類只有一個方法,顯然也太小了)。

              下面是一個反面的設計示例。

              public class CardDeck// bad design

              {

              public CardDeck(){…}

              public void shuffile(){…}

              public void draw(){…}

              public int getTopValue(){}

              public int getTopSuit(){}

              private int[] value;

              private int[] suit;

              }

              實際上,這個類實現了兩個獨立的概念:一副牌(含有shuffle方法和draw方法)和一張牌(含有查看面值和花色的方法)。另外,引入一個表示單張牌的Card類。現在有兩個類,每個類完成自己的職責:

              public class CardDeck// better design

              {

              public CardDeck(){…}

              public void shuffile(){…}

              public void draw(){…}

              public int getTopValue(){}

              public int getTopSuit(){}

              private Card[] cards;

              }

              public class Card {

              public Card(int value,int aSuit){}

              public int getTopValue(){}

              public int getTopSuit(){}

              private int value;

              private int suit;

              }

              7)類名和方法名要能夠體現它們的職責。

              與變量應該有一個能夠反映其含義的名字一樣,類也應該如此(在標準類庫中,也存在著一些含義不明確的例子,如:Date類實際上是一個用于描述時間的類)。

              命名類名的良好習慣是采用一個名詞(Order)、前面有形容詞修飾的名詞(RushOrder)或動名詞(有"-ing"后綴)修飾名詞(例如,BillingAddress)。對于方法來說,習慣是訪問器方法用小寫get開頭(getSalary),更改器方法用小寫的set開頭(setSalary)。