1. 程式人生 > >Java核心技術之類與物件

Java核心技術之類與物件

知識點

1. 一個物件變數並沒有實際包含一個物件,而僅僅引用一個物件。new操作符的返回值也是一個引用。

2. 區域性變數不會自動地初始化為null,而必須用過呼叫new或將他們設定為null進行初始化。最好顯示的初始化成員變數

3. 更改器方法更改呼叫這個方法的物件,相反,訪問器方法只訪問物件而不修改物件

4. 注意不要編寫返回引用可變物件的訪問器方法(即getter方法不要直接返回一個物件,而是要返回這個物件的clone物件,return object.clone() 而不是return object,否則返回的是這個物件的引用,會破壞封裝性)。

5. 一個方法可以訪問所屬類的所有物件的私有資料。

Class A{

       private String name;

       public Boolean equal(A other){

       return name.equal(other.name);

}

}

       6. 成員變數為final時,必須確保構造器執行後這個域的值被設定,且後面的操作中不能修改它。如果是物件變數,則是引用不能變,但這個物件可以變

       7. 可以認為靜態方法沒有this引數

       8. main方法常用於本類的單元測試

       9. 當方法的引數是類物件時,實際上是按值傳遞的。但是方法引數引用了傳遞的物件地址。所以可以通過引數變數修改原物件的內部屬性,而不能修改原物件的引用。

       10. 文件註釋

文件註釋以/**開始,以*/結束。其中可以用@標記、可以使用html語言。類註釋必須放在import語句之後,類定義之前。方法註釋必須放在所描述的方法之前,可用@param,@return,@throws。域註釋,一般只為靜態常量建立文件。要想產生包註釋,就需要在每一個包目錄中新增一個單獨檔案(package.html或package-info.java)

一定要使用#而不是.來分割類名與方法名,或類名與變數名

通用註釋@author,@version,@since,@deprecated,@see(用於類或方法註釋中,可增加超連結),@link(在任意位置指向其他類或方法的超連結)

       11. Date與localDate

Date類用來表示時間點,LocalDate(JDK8)是日曆表示法(推薦用LocalDate

LocalDate.now()構造一個表示當前日期的物件(靜態工廠方法,而不要用new)

LocalDate.of(int year, int month, int day)構造一個表示給定日期的物件

LocalDate.plusDays(int n),LocalDate.minusDays(int n)生成當前日期之後n天的日期

       12. 類設計

1)保證資料私有

2)對資料初始化

3)不要在類中過多使用基本型別

4)不是所有的域都需要獨立的域訪問器和域更改器(即getter和setter)

5)把職責過多的類進行分解

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

7)優先使用不可變的類(即合理使得沒有方法能修改物件的狀態,而是返回一個修改狀態後的新物件)