前面幾章自行查看~
4.3 封裝的優點
- 訪問器如果要返回一個對象,再返回之前首先要對其進行克?。?code>clone)。避免其在其它地方被改變狀態,破壞封裝性。
4.5方法參數(page#121)
Java采用的是按值調用。也就是說,方法所得到的是所有參數值的一個拷貝,特別是,方法不能修改傳遞給它的任何參數變量的內容。
在Java中方法參數的使用情況:
- 一個方法不能修改一個基本數據類型的參數(即數值型和布爾型)。
- 一個方法可以改變一個對象參數的狀態。
- 一個方法不能讓對象參數引用一個新的對象。
4.6 對象構造
方法的簽名:方法名 + 參數類型 (例如:
indexOf(int)
,indexOf(int, int)
)。返回類型不作為簽名的一部分。也就是說,一個類中不能存在方法名和參數類型都相同,但返回類型不同的方法。
構造器
- 如果類中不存在構造器,那么在初始化時系統會提供一個無參構造器。
- 如果類中至少有一個構造器,但是沒有無參構造器,這時初始化類的不提供參數的話會被視為不合法,即系統不再提供無參構造器。
構造器調用步驟
1) 所有數據域被初始化為默認值(0、false或null)。
2) 按照類聲明中出現的次序,一次執行所有域初始化語句和初始化塊。
3) 如果構造器第一行調用了第二個構造器,則執行第二個構造器主題。
4) 執行這個構造器的主體。可以使用靜態初始化塊來對靜態域進行初始化。
private static int nextId;
// static initialization block
static
{
Random generator = new Random();
nextId = generator.nextInt(1000);
}