201621123079《java程序设计》第六周作业总结
作業(yè)06-接口、內(nèi)部類
1. 本周學(xué)習(xí)總結(jié)
1.1 面向?qū)ο髮W(xué)習(xí)暫告一段落,請使用思維導(dǎo)圖,以封裝、繼承、多態(tài)為核心概念畫一張思維導(dǎo)圖或相關(guān)筆記,對面向?qū)ο笏枷脒M行一個總結(jié)。
2. 書面作業(yè)
1. clone方法
1.1 在test1包中編寫Employee類,在test2包中新建一個Test類,并在其main中新建test1包中的Employee的對象,然后使用clone方法克隆一個新對象,能否成功?為什么?
不能成功;clone被修飾為protected,所以只限類本身和子類訪問,不能跨包訪問。
1.2 如果要為自定義的類覆蓋clone方法,需注意什么?
- 實現(xiàn)Cloneable接口;
- 將clone聲明為public;
- 調(diào)用父類的方法進行克隆操作,(super.clone);
1.3 Object對象中的toString, equals, hashCode方法都使用public修飾,而clone方法卻被protected修飾,請嘗試解釋原因。為什么不聲明為public呢?
利用protected修飾clone方法,是為了安全考慮。Object類中的clone方法是淺拷貝,如果是對象,它拷貝的只是這個對象的一個引用,而這個引用仍然指向那個對象,當(dāng)我們改變這個引用的屬性時,原來對象也會跟著改變,這不是我們希望看到的,但是Object類肯定做不到深拷貝,因為它不知道你的類里有哪些引用類型,所以把修飾符定義為protected,這樣想要在其他任何地方調(diào)用這個類的clone方法,這個類就必須去重寫clone方法并且把修飾符改為public,并且把修飾符修改為public,這樣在任何地方都可以調(diào)用這個類的clone方了。
詳細解釋
2. 內(nèi)部類
2.1 使用匿名類與Lambda表達式改寫題集面向?qū)ο?-進階-多態(tài)接口內(nèi)部類的題目7-2。請貼圖關(guān)鍵代碼與運行結(jié)果,請在運行結(jié)果中出現(xiàn)你的學(xué)號與姓名。
2.2. 分析下列代碼,回答shapeComparator所指向的對象與Comparator接口有什么關(guān)系?Comparator<Shape> shapeComparator = new Comparator<Shape>() { @Override public int compare(Shape o1, Shape o2) { //你的代碼 } };
實現(xiàn)Comparator接口,重寫了compare方法。
2.3 題集:6-1(匿名內(nèi)部類)實驗總結(jié)。你覺得使用匿名內(nèi)部類有什么好處?
簡化代碼,對只使用一次的類不用額外再創(chuàng)建。
3. PTA實驗總結(jié)
3.1 PTA(自定義接口)。并回答:相比較不寫接口,直接寫一個類包含IntegerStack相應(yīng)的方法來說,定義IntegerStack接口,然后定義其實現(xiàn)類這種方式有什么好處?
定義IntegerStack接口可直接對它進行操作,簡單方便。
3.2 PTA(靜態(tài)內(nèi)部類)。并回答:你覺得什么時候應(yīng)該使用靜態(tài)內(nèi)部類?靜態(tài)內(nèi)部類與內(nèi)部類有什么區(qū)別?
- 當(dāng)內(nèi)部類對象與其外圍類對象之間有聯(lián)系時可使用靜態(tài)內(nèi)部類;
- 靜態(tài)內(nèi)部類不需要有指向外部類的引用;而內(nèi)部類需要持有對外部類的引用。
3.3 PTA(繼承覆蓋綜合練習(xí)-Person、Student、Employee、Company)。并回答:使用Collections.sort對引用類型數(shù)組進行排序需要有一個什么前提條件?
實現(xiàn)Comparable接口。
4.大作業(yè)-繼續(xù)完善(嘗試使用接口改造你們的系統(tǒng))
4.1 現(xiàn)在希望將系統(tǒng)中購物車的操作抽象到相應(yīng)的DAO接口。
接口類:
4.2 為該接口定義至少兩個實現(xiàn)(如數(shù)組、列表、文件)。截圖自己負責(zé)部分的關(guān)鍵代碼,要求出現(xiàn)名字與學(xué)號
購物車類:
User類(調(diào)用購物車):
UserList類:
4.3 給出你們的Main程序,說明定義DAO接口的好處。
實現(xiàn)Dao接口后可以調(diào)用多種類實現(xiàn)功能,而修改時不用修改類。
5. 代碼閱讀:PersonTest.java(abstract、多態(tài)、super)
5.1 畫出類的繼承關(guān)系
5.2 main函數(shù)的代碼實現(xiàn)什么功能?
將四個人的年齡進行升序輸出。
5.3 如果將子類中的super構(gòu)造函數(shù)去掉行不行?
不行;去掉super構(gòu)造函數(shù)后子類就無法調(diào)用父類中的方法了。
5.4 PersonTest.java中哪里體現(xiàn)了多態(tài)?
- Student,Employee等類繼承了Person類;
這些類又重寫了toString()方法,使得類本身有自身的屬性和方法,體現(xiàn)了多態(tài)性。
3.碼云及PTA
3.1. 碼云代碼提交記錄
3.2 截圖PTA題集完成情況圖
3.3 統(tǒng)計本周完成的代碼量
| 1 | 0 | 0 | 0 | 0 |
| 2 | 0 | 0 | 0 | 0 |
| 3 | 0 | 0 | 0 | 0 |
| 4 | 0 | 0 | 0 | 0 |
| 5 | 322 | 322 | 5 | 5 |
| 6 | 729 | 407 | 12 | 7 |
| 7 | 1074 | 245 | 20 | 8 |
轉(zhuǎn)載于:https://www.cnblogs.com/lsyuan/p/7747361.html
總結(jié)
以上是生活随笔為你收集整理的201621123079《java程序设计》第六周作业总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [face_recognition中文文
- 下一篇: oracle间隔分区