構(gòu)造器
new關(guān)鍵字做的事情:1.在堆中為對(duì)象開辟空間,成員變量會(huì)跟隨對(duì)象進(jìn)入到堆內(nèi)存并附默認(rèn)值2.調(diào)用構(gòu)造器為對(duì)象初始化信息3.將地址返回給引用
構(gòu)造器|構(gòu)造方法|構(gòu)造函數(shù):
就是特殊的方法
?
使用:
必須只能跟隨new關(guān)鍵字使用
作用:
只能new關(guān)鍵字才能創(chuàng)建對(duì)象,構(gòu)造器只能為對(duì)象初始化信息(就是為對(duì)象的成員變量賦值) ,不能創(chuàng)建對(duì)象
定義:
修飾符 類名(){
}
構(gòu)造器不需要定義返回值和void
可以定義return,但是不需要return帶出返回值

?
一個(gè)類中如果沒(méi)有顯示定義構(gòu)造器,編譯器會(huì)自動(dòng)會(huì)我們提供一個(gè)空構(gòu)造
如果有顯示定義構(gòu)造器,編譯器不會(huì)為我們提供任何空構(gòu)造
方法具有重載的特性,構(gòu)造器也可以重載
重載構(gòu)造器的調(diào)用使用,根據(jù)new對(duì)象后的()匹配參數(shù)列表
?
注意 :
自定義的模板類,都應(yīng)該至少提供一個(gè)空構(gòu)造
this關(guān)鍵字
this 關(guān)鍵字指代當(dāng)前new對(duì)象1)在構(gòu)造器的首行可以調(diào)用本類中的其他構(gòu)造器this(實(shí)參);注意: 一定要使用在構(gòu)造器的首行才行主要不要相互調(diào)用,效果類似死循環(huán)2)區(qū)分同名變量問(wèn)題成員變量與局部變量同名問(wèn)題,this.調(diào)用成員,否則默認(rèn)就近原則在構(gòu)造器中this關(guān)鍵字指代當(dāng)前new的對(duì)象在成員方法中的this,默認(rèn)指代當(dāng)前調(diào)用成員方法的對(duì)象如果出現(xiàn)同名問(wèn)題,指代成員this.不能省略,如果沒(méi)有同名問(wèn)題,哪有用哪個(gè),當(dāng)找到成員的時(shí)候定義靜態(tài)成員關(guān)鍵字,this.可以省略
注意: this不能使用在static修飾方法中
關(guān)鍵字
靜態(tài)的修飾變量修飾方法修飾塊修飾類
1)被static修飾的變量-->靜態(tài)變量|類變量

2)被static修飾的方法-->靜態(tài)方法|類方法
?
靜態(tài)內(nèi)容的使用方式:
類名.靜態(tài)變量名
類名.靜態(tài)方法名()
引用.靜態(tài)變量名
引用.靜態(tài)方法名()
?
靜態(tài)的內(nèi)容是屬于類的,可以直接跟隨類名使用,可以跟隨對(duì)象使用
成員的內(nèi)容是屬于對(duì)象的,是能跟隨對(duì)象使用,現(xiàn)有對(duì)象才有成員
?
靜態(tài)的變量是獨(dú)一份的,在類第一次加載到內(nèi)存之后就初始化,當(dāng)前類多個(gè)對(duì)象共享的,在方法區(qū)中的靜態(tài)區(qū)中
在靜態(tài)的內(nèi)容中,只能直接使用靜態(tài)的內(nèi)容,不能直接使用成員的內(nèi)容,通過(guò)對(duì)象使用成員
在成員內(nèi)容中,可以直接使用靜態(tài)內(nèi)容,可以直接使用成員內(nèi)容

static關(guān)鍵字只能修飾成員,不能修飾局部-->成員修飾符
?
先靜態(tài)后成員
先父類后子類
block塊
塊block自成作用域 {}
普通語(yǔ)句塊|局部代碼塊{} : 定義在方法中 執(zhí)行時(shí)機(jī): 跟隨所在方法調(diào)用
構(gòu)造塊{} : 類中方法外 執(zhí)行時(shí)機(jī): new 創(chuàng)建對(duì)象
靜態(tài)塊static{} : 類中方法外 執(zhí)行時(shí)機(jī): 類第一次加載
同步塊
?
構(gòu)造塊代碼在構(gòu)造器代碼之前執(zhí)行,如果一個(gè)類中存在多個(gè)構(gòu)造塊,從上到下一次執(zhí)行
在類第一次加載完成之后就執(zhí)行,并且只執(zhí)行一次
如果一個(gè)類中存在多個(gè)靜態(tài)塊,從上到下一次執(zhí)行

如果一個(gè)類中存在多個(gè)靜態(tài)內(nèi)容,從上到下一次加載
?
靜態(tài)塊-->main-->構(gòu)造塊-->構(gòu)造器
bean
模板類
安全隱患問(wèn)題:介紹一個(gè)關(guān)鍵字
私有的 ,權(quán)限修飾符
被修飾的成員只能在當(dāng)前類中使用
私有的內(nèi)容->配合公共訪問(wèn)方式一起使用
設(shè)置器
訪問(wèn)器
設(shè)置器和訪問(wèn)器其實(shí)就是公共的成員方法
面向?qū)ο蟮娜筇匦?
封裝 :
隱藏內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),對(duì)外提供公共的訪問(wèn)方式
方法是封裝的體現(xiàn)
屬性私有化定義靜態(tài)成員關(guān)鍵字,公共的訪問(wèn)方式是封裝的一個(gè)非常具體的體現(xiàn)
類也是封裝的體現(xiàn)
...
問(wèn)私有是封裝,封裝是私有對(duì)么???
私有是封裝的體現(xiàn)
封裝不僅僅是私有
好處:
挺高代碼的復(fù)用性
提高程序的安全性
繼承
多態(tài)
注意:
以后自定義模板類,屬性都應(yīng)該私有化,并提供公共的訪問(wèn)方式