1.類
-
封裝(encapsulation):封裝的關(guān)鍵在于絕對(duì)不能讓類中的方法直接地訪問(wèn)其他類的實(shí)例域(instance field, 對(duì)象中的數(shù)據(jù)稱為實(shí)例域)
- 對(duì)象變量并沒(méi)有實(shí)際包含一個(gè)對(duì)象寂嘉,而僅僅是引用一個(gè)對(duì)象。所有的Java對(duì)象都存儲(chǔ)在堆中
- 在一個(gè)源文件中只能有一個(gè)公共類,可以有任意非公共類脂矫,文件名必須與public類名字相同
-
訪問(wèn)器方法:只訪問(wèn)對(duì)象而不修改對(duì)象的方法
- Java編譯器會(huì)監(jiān)視調(diào)用那些簡(jiǎn)潔盆均、經(jīng)常被調(diào)用杰刽、沒(méi)有被重載以及可優(yōu)化的方法
- 方法可以訪問(wèn)所屬類的私有特性澜术,而不僅限于訪問(wèn)隱式參數(shù)的私有特性
class Employee {
private String name; //私有域
public boolean equals(Employee other) {
return name.equals(other.name); //訪問(wèn)other.name合法
}
}
2.靜態(tài)域與靜態(tài)方法
- 靜態(tài)域:該類的所有實(shí)例共享同一個(gè)域
class Employee {
private static int nextId = 1; //靜態(tài)域
private int id;
}
- 靜態(tài)常量:static表示該域?yàn)樗蓄惞蚕恚ㄈ?
Math.PI
)
final表示不可修改該變量的值
pulic static final double PI = 3.1415926535898;
- 靜態(tài)方法:不能向?qū)ο髮?shí)施操作的方法
使用靜態(tài)方法的兩種情況:
- 該方法不需要訪問(wèn)對(duì)象狀態(tài)
- 該方法只需要訪問(wèn)類的靜態(tài)域
3.對(duì)象構(gòu)造
- 默認(rèn)域初始化:數(shù)值為0陷揪,布爾值為false惋鸥,對(duì)象引用為null
- 調(diào)用構(gòu)造器的順序
1)所有數(shù)據(jù)初始化為默認(rèn)值(0杂穷,false,null)
2)按照類聲明中出現(xiàn)順序卦绣,依次執(zhí)行初始化語(yǔ)句和初始化塊
3)執(zhí)行構(gòu)造函數(shù)
-
靜態(tài)初始化塊:用來(lái)初始化靜態(tài)域
static { //靜態(tài)初始化塊
Random generator = new Random();
nextId = generator.nextInt(10000);
}
- 析構(gòu)方法 finalize耐量,將在垃圾回收器清楚對(duì)象之前調(diào)用,但很難知道其具體調(diào)用時(shí)間滤港,所以不要指望在finalize中回收短缺資源廊蜒。
4.包
- 一個(gè)類可以使用所屬包中的所有類,以及其他包中的公有類
- 包作用域:沒(méi)有指定public或private的類溅漾,方法或變量山叮,可以被同一個(gè)包中的所有方法訪問(wèn)。
- JAR文件:Java歸檔文件
5.文檔注釋
- 域注釋:只需要對(duì)公有域(通常指的是靜態(tài)常量)建立文檔
/**
*The Hearts card suit
*/
public static final int HEARTS = 1;
-
@author
姓名
-
@version
版本
-
@since
始于添履,如 @since version 1.7.1
-
@see
引用屁倔,三種方式如下
/**
* 展開(kāi)與收起之間的狀態(tài)
* @see BaseResponse#getDesc()
* @see <a href="www.baidu.com">網(wǎng)址</a>
* @see "Core Java2 volume 2"
*/
6.類設(shè)計(jì)技巧