激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

Java中類(lèi)的設計技巧有哪些

時(shí)間:2024-10-21 20:56:51 JAVA認證 我要投稿
  • 相關(guān)推薦

Java中類(lèi)的設計技巧有哪些

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

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

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

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

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

  3)不要在類(lèi)中使用過(guò)多的基本數據類(lèi)型。

  就是說(shuō),用其他的類(lèi)代替多個(gè)相關(guān)的基本數據類(lèi)型的使用。這樣會(huì )使類(lèi)更加易于理解且易于修改。例如,用一個(gè)稱(chēng)為Address的新的類(lèi)替換下面的Customer類(lèi)中的實(shí)例域:

  private String street;

  private String city;

  private String state;

  private int zip;

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

  4)不是所有的域都需要獨立的域訪(fǎng)問(wèn)器和域更改器。

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

  5)使用標準格式進(jìn)行類(lèi)的定義。

  一定采用下面的順序書(shū)寫(xiě)類(lèi)的內容:

  公有訪(fǎng)問(wèn)特性部分

  包作用域訪(fǎng)問(wèn)特性部分

  私有訪(fǎng)問(wèn)特性部分

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

  實(shí)例方法

  靜態(tài)方法

  實(shí)例域

  靜態(tài)域

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

  但是,哪一種風(fēng)格更好并沒(méi)有達成共識。Sun的程序設計風(fēng)格建議Java程序設計語(yǔ)言先書(shū)寫(xiě)域,后書(shū)寫(xiě)方法。無(wú)論采用哪種風(fēng)格,重要的一點(diǎn)是要保持一致。

  6)將職責過(guò)多的類(lèi)進(jìn)行分解。

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

  下面是一個(gè)反面的設計示例。

  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;

  }

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

  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)類(lèi)名和方法名要能夠體現它們的職責。

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

  命名類(lèi)名的良好習慣是采用一個(gè)名詞(Order)、前面有形容詞修飾的名詞(RushOrder)或動(dòng)名詞(有"-ing"后綴)修飾名詞(例如,BillingAddress)。對于方法來(lái)說(shuō),習慣是訪(fǎng)問(wèn)器方法用小寫(xiě)get開(kāi)頭(getSalary),更改器方法用小寫(xiě)的set開(kāi)頭(setSalary)。

【Java中類(lèi)的設計技巧有哪些】相關(guān)文章:

java中File類(lèi)有哪些使用方法03-14

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

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

演講中的控場(chǎng)技巧有哪些03-08

2017編導類(lèi)藝考技巧有哪些03-10

平面設計學(xué)習技巧有哪些03-13

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

發(fā)面技巧有哪些03-29

唱歌的技巧有哪些03-14

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频