最近在看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("我在聽!");
}
}
}
這個內部類知識點很雜,感覺還是不要一下死記硬背下來,到用的時候再回頭看吧~
好了,休息,晚安~~~