201711671223《Java程式設計》第六週學習總結
201711671223《Java程式設計》第六周學習總結
教材內容學習總結
繼承是由已有的類建立新類的機制。Java不支援多重繼承,子類只能有一個父類。使用關鍵字extend定義一個類的子類。Object類是所有類的祖先類。
子類和父類在同一包中,子類繼承父類不是private的成員變數和方法,繼承的成員變數及方法的訪問許可權保持不變。不在同一包中時,子類只繼承父類中protected和public的成員變數及方法。
instanceof運算子,當左面的操作元是右面的類或其子類所建立的物件時,運算結果是true,否則為false。
子類的成員中一部分是子類自己宣告定義的,另一部分是從父類繼承的。子類繼承父類的成員變數把繼承來的變數作為自己的一個成員變數,可以被子類中自己定義的任何例項方法操作,方法也一樣。
子類建立物件時,子類的構造方法總是先呼叫父類的某個構造方法,完成父類部分的建立;然後再呼叫子類自己的構造方法,完成子類部分的建立。如果子類的構造方法沒有明顯地指明使用父類的哪個構造方法,子類就呼叫父類的不帶引數的構造方法 。子類在建立一個子類物件時,不僅子類中宣告的成員變數被分配了記憶體,而且父類的所有的成員變數也都分配了記憶體空間,但子類只能操作繼承的那部分成員變數 。子類可以通過繼承的方法來操作子類未繼承的變數和方法 。
如果父類沒有不帶引數的構造方法,則在子類的構造方法中必須明確的告訴呼叫父類的某個帶引數的構造方法,通過super關鍵字,這條語句還必須出現在構造方法的第一句。
子類中宣告的成員變數和父類中的成員變數同名時,子類就隱藏了繼承的成員變數。子類通過重寫可以隱藏已繼承的例項方法。如果子類繼承了父類的例項方法,那麼子類就有權利重寫這個方法。
方法重寫是指:子類中定義一個方法,這個方法的型別和父類的方法的型別一致或是父類方法的型別的子型別,且這個方法的名字、引數個數、引數的型別和父類的方法完全相同。子類通過方法的重寫可以隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態和行為改變為自身的狀態和行為。子類建立的一個物件,如果子類重寫了父類的方法,則執行時系統呼叫的是子類重寫的方法;子類建立的一個物件,如果子類未重寫父類的方法,則執行時系統呼叫的是子類繼承的方法。
可以使用final關鍵字將類宣告為final類。final類不能被繼承,即不能有子類。使用上轉型物件以及面向抽象程式設計的思想,以便體現程式設計所提倡的“開-閉”原則。用關鍵字abstract修飾的類稱為abstract類(抽象類),用關鍵字abstract修飾的方法稱為abstract方法(抽象方法)。
程式碼在除錯過程中的問題
對子類與繼承中的子類的方法重寫規則不熟,super關鍵字無法正確使用。對於物件的上轉型物件以及抽象類、抽象方法等定義的認知存在模糊不清。對於多型,對重寫,過載時常會搞混亂。在編寫程式碼時一些關鍵字仍無法完全記憶。只能查閱教材進行解決,編寫除錯程式碼的過程中,仍需看著書本敲,並不能看幾遍教材後自行編寫,邏輯思維行不強,仍需改變提高,在敲程式碼時一些關鍵字仍會出現錯誤,在編寫程式碼時像標點符號的小細節仍做的不是很好。
學習進度條
程式碼行數(新增/累積) |
部落格量(新增/累積) |
學習時間(新增/累積) |
重要成長 |
|
目標 |
3000 |
20篇 |
120小時 |
|
第一週 |
100/100 |
1/1 |
4/4 |
學會了簡單的Java程式的編寫 |
第二週 |
100/200 |
1/2 |
5/9 |
能夠編寫較為完整、小型的Java程式 |
第三週 |
200/400 |
1/3 |
5/14 |
能夠使用一些基本語句編寫具有一定應用途徑的Java小程式。 |
第五週 |
780/980 |
1/4 |
7/21 |
能夠使用包,以及將包中的多個類檔案打包成jar檔案,對一些語句也可謂理解。 |
第六週 |
850/1050 |
1/5 |
3/24 |
學習了子類與繼承,瞭解到抽象類。 |