Java核心技術8總結(二)
1、依賴,聚合,繼承
依賴:果一個類的方法操縱另一個類的對象,我們就說一個類依賴于另一個類。
聚合:類A的對象包含類B的對象。
繼承:,如果類A擴展類B,類A不但包含從類B繼承的方法,還會擁有一些額外的功能。
2、日歷Calendar
(1)創建
GregorianCalendarcalendar=new regorianCalendar(2008,Calendar.DECEMBER,01);
(2)set.get.add的用法
3、關于static
有時你希望定義一個類成員,使它的使用完全獨立于該類的任何對象。通常情況下,類成員必須通過它的類的對象訪問,但是可以創建這樣一個成員,它能夠被它自己使用,而不必引用特定的實例。在成員的聲明前面加上關鍵字static(靜態的)就能創建這樣的成員。
總結:
變量:不要加static
常量:加上static
方法:一般不要加static,除非這個方法不允許對象操作。
4、Factory方法
NumberFormat format=NumberFormat.getPercentInstance();
NumberFormat format2=NumberFormat.getCurrencyInstance();
int x=1;
System.out.println(format.format(x));
System.out.println(format2.format(x));
結果:
100%
¥1.00
5、類設計技巧
1)一定將數據設計為私有。
最重要的是:絕對不要破壞封裝性。有時候,需要編寫一個訪問器方法或更改器方法,但是最好還是保持實例域的私有性。很多慘痛的經驗告訴我們,數據的表示形式很可能會改變,但它們的使用方式卻不會經常發生變化。當數據保持私有時,它們的表示形式的變化不會對類的使用者產生影響,即使出現bug也易于檢測。
2)一定要對數據初始化。
Java不對局部變量進行初始化,但是會對對象的實例域進行初始化。最好不要依賴于系統的默認值,而是應該顯式地初始化所有的數據,具體的初始化方式可以是提供默認值,也可以是在所有構造器中設置默認值。
3)不要在類中使用過多的基本數據類型。
就是說,用其他的類代替多個相關的基本數據類型的使用。這樣會使類更加易于理解且易于修改。例如,用一個稱為Address的新的類替換下面的Customer類中的實例域:
這樣,可以很容易地順應地址的變化,例如,需要增加對國際地址的處理。
4)不是所有的域都需要獨立的域訪問器和域更改器。
或許,需要獲得或設置雇員的薪金。而一旦構造了雇員對象,就應該禁止更改雇用日期,并且在對象中,常常包含一些不希望別人獲得或設置的實例域,例如,在Address類中,存放州縮寫的數組。
5)使用標準格式進行類的定義。
一定采用下面的順序書寫類的內容:
公有訪問特性部分
包作用域訪問特性部分
私有訪問特性部分
在每一部分中,應該按照下列順序列出:
實例方法
靜態方法
實例域
靜態域
畢竟,類的使用者對公有接口要比對私有的實現細節更感興趣,并且對方法要比對數據更感興趣。
但是,哪一種風格更好并沒有達成共識。Sun的程序設計風格建議 Java程序設計語言先書寫域,后書寫方法。無論采用哪種風格,重要的一點是要保持一致。
6)將職責過多的類進行分解。
這樣說似乎有點含糊不清,究竟多少算是“過多”?每個人的看法不同。但是,如果明顯地可以將一個復雜的類分解成兩個更為簡單的類,就應該將其分解(但另一方面,也不要走極端。設計10個類,每個類只有一個方法,顯然也太小了)。
7)類名和方法名要能夠體現它們的職責。
與變量應該有一個能夠反映其含義的名字一樣,類也應該如此(在標準類庫中,也存在著一些含義不明確的例子,如:Date類實際上是一個用于描述時間的類)。
命名類名的良好習慣是采用一個名詞(Order)、前面有形容詞修飾的名詞(RushOrder)或動名詞(有“-ing”后綴)修飾名詞(例如,BillingAddress)。對于方法來說,習慣是訪問器方法用小寫get開頭(getSalary),更改器方法用小寫的set開頭(setSalary)。
posted on 2009-04-13 14:40
重慶理工小子 閱讀(288)
評論(0) 編輯 收藏 所屬分類:
JAVA基礎