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