201671010116. 2016-2017-6《Java程序設計》第六周學習總結
本周通過老師的課堂講解以及假期的學習,知識點總結如下:
1.回調可以指出某個特定事件發生時應該采取的動作。
以構造定時器為例:
在很多程序設計語言中,可以提供一個函數名,定時器周期性的調用它。但Java標準類庫中的類采用的是面向對象方法。將某個類的對象傳遞給定時器,然後定時器,定時器調用這個對象的方法。由於對象可以攜帶一些附加的信息,所有傳遞一個對象比傳遞一個函數靈活的多。
2. 接口不是類,不能使用new運算符實例化一個接口但是可以聲明接口變量,同時接口變量必須引用實現了接口的類對象。
3.一個接口中可以包含多個方法,還可以定義常量,自動設置public static final
聲明在接口中的內部類自動成為static和public類。
接口中不能含有實例域,也不能在接口中實現方法。提供實例域和方法實現的任務應該由實現接口的那個類來完成。
可以將接口看成是沒有實例域的抽象類。
在調用方法時編譯器會檢查這個方法是否存在,如果是實現了接口的對象的數組,接口中提供了該方法,那麽就可以確定該方法一定存在。每個實現了接口的類都必須提供接口中定義的所有方法。
為了讓類實現一個接口,需要1:將類聲明為實現 implements 給定的接口 2:對接口中的所有方法進行定義
4.對象克隆:
拷貝一個變量時,原始變量與拷貝變量引用同一個對象,改變一個變量所引用的對象會對另一個變量產生影響。
所有默認的克隆操作是淺拷貝,並沒有克隆包含在對象中的內部對象。
必須重新定義clone方法,以便實現克隆子對象的深拷貝。對每個類都要做出下列判斷:
1:默認的clone方法能否滿足要求
2:默認的clone方法是否能夠通過調用可變子對象的clone得到修補。
3:是否不應該使用clone
如果要使用clone,必須:
1:實現Cloneable接口
2:使用public訪問修飾符重新定義clone方法,並聲明異常CloneNotSupportedException
即使clone的默認實現能滿足要求,也應該實現Cloneable接口,將clone定義為public,然後調用super.clone();
學習過程中發現以下問題:
1.能夠在含義上區分淺拷貝與深拷貝,但在編程時不太會使用深拷貝
2.對Java中字典序的編程語法不知道怎麽寫
201671010116. 2016-2017-6《Java程序設計》第六周學習總結