java培訓(xùn)班 java中,匿名內(nèi)部類有什么作用?
java中,匿名內(nèi)部類有什么作用?你要去理解什么是內(nèi)部類,內(nèi)部類的作用,java的多態(tài),什么是回調(diào)函數(shù)。 匿名內(nèi)部類是當(dāng)做函數(shù)的參數(shù)傳遞給方法的,在這個(gè)方法中,會(huì)用接口類型接受傳入的匿名類,然后調(diào)用其
java中,匿名內(nèi)部類有什么作用?
你要去理解什么是內(nèi)部類,內(nèi)部類的作用,java的多態(tài),什么是回調(diào)函數(shù)。 匿名內(nèi)部類是當(dāng)做函數(shù)的參數(shù)傳遞給方法的,在這個(gè)方法中,會(huì)用接口類型接受傳入的匿名類,然后調(diào)用其方法,這是多態(tài)。原理其實(shí)是實(shí)現(xiàn)了回調(diào)。 因?yàn)樗麜?huì)調(diào)用你匿名內(nèi)部類中的方法。 給你舉個(gè)例子:手敲的代碼,未經(jīng)測試 interface InterfaceA{ String go() } class Test(){ public void prtGo(InterfaceA ia){ System.out.println(ia.o()) } public static void main(String []args){ Test t = new Test() t.prtGo(new InterfaceA(){ public String go(){ return "go" } }) } }
Java中怎樣構(gòu)造方法和匿名對象?
構(gòu)造方法
定義java中的類一般包含3個(gè)部分
屬性
構(gòu)造方法
普通方法
構(gòu)造方法:
構(gòu)造方法名稱與類名相同,無返回值;
每個(gè)類中至少有1個(gè)構(gòu)造方法;
構(gòu)造方法允許重載,重載時(shí)只需考慮改變參數(shù)類型或個(gè)數(shù)
在實(shí)例化對象格式
類名稱 對象名稱 = new 類名稱()
其中 類名稱() 就是構(gòu)造方法。
如果定義類的過程中沒有定義構(gòu)造方法,則會(huì)在實(shí)例化時(shí)系統(tǒng)自動(dòng)生成默認(rèn)的無參數(shù)構(gòu)造方法。
如果重載了帶參數(shù)構(gòu)造方法,則系統(tǒng)將不會(huì)自動(dòng)生成默認(rèn)的構(gòu)造方法,也就是在實(shí)例化時(shí),需要帶上參數(shù),否則會(huì)報(bào)錯(cuò)。
構(gòu)造方法的作用
利用構(gòu)造方法對屬性初始化處理
如果有很多個(gè)屬性參數(shù),可以避免重復(fù)的調(diào)用setter方法。(可以一次性傳遞多個(gè)參數(shù),不用多次setter方法賦值)
setter方法除了賦值之外,也可以對屬性進(jìn)行修改,也就是重新賦值。
匿名對象
new Person("張三",20).info()
不用對象名 Person per ,只使用后邊的new Person("張三",20) ,這個(gè)就是匿名對象。
匿名對象不會(huì)有棧內(nèi)存空間,所以使用一次后就會(huì)成為垃圾。
一般使用有名對象,使用的多了或者對象太多了,可直接使用匿名對象。