JAVA學習筆記16——回調+內部類

最近在看JAVA教學的視頻,覺得老師講的很好,同時借用源代碼還有筆記來撰寫本系列博客,記錄自己的學習內容,同時也供看到的人學習。

頭一次這麼晚還在寫博客····看教學視頻都有點兒看不進去了····

第一個內容:回調(callback),其實本質上就是多態的一種應用,使整個程序代碼形成一個有缺口的代碼片,在缺口處可以根據實際需要靈活地掛上帶有不同內容的“鉤子”,代碼本身還是很好理解的,弄不太懂可以參照前面的多態:


public class MyFrame{
	public void paint(){
		System.out.println("畫窗口!");
	}
}
解釋:f.paint()就是那個鉤子,相當於填空題裏面的空,對比drawFrame的形參和實參可以得知,這就是多態裏面的第二步:父類引用指向子類對象,根據具體的子類是哪個就調用哪個子類的paint方法,以此產生相應的不同的結果,所以,就是一種多態,不要想複雜哦~

第二個內容是介紹內部類,這可是一個很繁瑣的知識點,條件有限,截圖拼湊來介紹innerclass:








還有一種寫在方法裏面的內部類,那個極少用到,所以就不寫了。

我們看一個內部類的示例代碼,一些細節解釋在代碼裏面:

public class Outer {  //外部類
	public static void main(String[] args) {
		Face f = new Face();
		Face.Nose n = f.new Nose();   //內部類的定義方式
		n.breath();
		Face.Ear e = new Face.Ear();
		e.listen();
	}
}

class Face {
	int type;
	String shape="瓜子臉";
	static String color="紅潤";
	class Nose {
		void breath(){
			System.out.println(shape); 
			System.out.println(Face.this.type);  //內部類調用外部類的時候要這麼調用
			System.out.println("呼吸!");
		}
	}
	static class Ear {   //靜態內部類不能調用外部類的非靜態屬性
		void listen(){
			System.out.println(color);    //但是可以使用其靜態屬性
			System.out.println("我在聽!"); 
		}
	}
}
這個內部類知識點很雜,感覺還是不要一下死記硬背下來,到用的時候再回頭看吧~

好了,休息,晚安~~~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章