前面幾章自行查看~
4.3 封裝的優(yōu)點(diǎn)
- 訪問(wèn)器如果要返回一個(gè)對(duì)象篡帕,再返回之前首先要對(duì)其進(jìn)行克潞耐亍(
clone
)留美。避免其在其它地方被改變狀態(tài)彰檬,破壞封裝性伸刃。
4.5方法參數(shù)(page#121)
Java采用的是按值調(diào)用。也就是說(shuō)逢倍,方法所得到的是所有參數(shù)值的一個(gè)拷貝捧颅,特別是,方法不能修改傳遞給它的任何參數(shù)變量的內(nèi)容较雕。
在Java中方法參數(shù)的使用情況:
- 一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類(lèi)型的參數(shù)(即數(shù)值型和布爾型)碉哑。
- 一個(gè)方法可以改變一個(gè)對(duì)象參數(shù)的狀態(tài)。
- 一個(gè)方法不能讓對(duì)象參數(shù)引用一個(gè)新的對(duì)象郎笆。
4.6 對(duì)象構(gòu)造
方法的簽名:方法名 + 參數(shù)類(lèi)型 (例如:
indexOf(int)
,indexOf(int, int)
)谭梗。返回類(lèi)型不作為簽名的一部分。也就是說(shuō)宛蚓,一個(gè)類(lèi)中不能存在方法名和參數(shù)類(lèi)型都相同激捏,但返回類(lèi)型不同的方法。
構(gòu)造器
- 如果類(lèi)中不存在構(gòu)造器凄吏,那么在初始化時(shí)系統(tǒng)會(huì)提供一個(gè)無(wú)參構(gòu)造器远舅。
- 如果類(lèi)中至少有一個(gè)構(gòu)造器,但是沒(méi)有無(wú)參構(gòu)造器痕钢,這時(shí)初始化類(lèi)的不提供參數(shù)的話會(huì)被視為不合法图柏,即系統(tǒng)不再提供無(wú)參構(gòu)造器。
構(gòu)造器調(diào)用步驟
1) 所有數(shù)據(jù)域被初始化為默認(rèn)值(0任连、false或null)蚤吹。
2) 按照類(lèi)聲明中出現(xiàn)的次序,一次執(zhí)行所有域初始化語(yǔ)句和初始化塊随抠。
3) 如果構(gòu)造器第一行調(diào)用了第二個(gè)構(gòu)造器裁着,則執(zhí)行第二個(gè)構(gòu)造器主題。
4) 執(zhí)行這個(gè)構(gòu)造器的主體拱她。可以使用靜態(tài)初始化塊來(lái)對(duì)靜態(tài)域進(jìn)行初始化二驰。
private static int nextId;
// static initialization block
static
{
Random generator = new Random();
nextId = generator.nextInt(1000);
}