201521123110《Java程序設計》第5周學習總結

1. 本周學習總結

1.1 嘗試使用思維導圖總結有關多態與接口的知識點。
1109892-20170325164757986-1883994893.png

2. 書面作業

1.代碼閱讀:Child壓縮包內源代碼

1.1 com.parent包中Child.java文件能否編譯通過?哪句會出現錯誤?試改正該錯誤。并分析輸出結果。
不能編譯通過,因為System.out.println(i)這句會出錯,因為其中的i是被private修飾,如果將其改成protected修飾,則可以成功編譯。其結果為:1109892-20170325165628752-1643907399.png

1.2 另外一個包中的OutOfParentPackage.java,能否編譯通過?提示什么錯誤?分析原因。如何更改才能使之正常編譯?
不能通過編譯,因為OutOfParentPackage與Parent類是在兩個不同的包中,而且Parent不是public類,所以要先將Parent改為public類。

2.abstract進階:閱讀GuessGame抽象類的設計與使用源代碼

2.1 Guess改造前代碼很簡單,而改造后的代碼使用了抽象類、抽象方法看起來很復雜,那這樣的改造到底有什么好處呢?
在還沒改造之前,只能在控制臺進行輸出;在改造后,使用抽象類,不僅可以在控制臺,也可以使用對話框圖形界面等輸入,操作就更多樣性了。
2.2 如果想將該游戲改造成圖形界面,應該進行一些什么操作?
可以再建一個圖形界面的類然后去繼承抽象類。
2.3 結合該例子,你覺得什么時候應該使用abstract?
abstract用于抽象類,主要是聲明但還沒實現其功能,當要使用時可以更靈活的變動。
2.4 重要:在這個例子中,變化的是什么,不變的是什么?嘗試結合abstract、繼承等概念進行說明。
變化的是游戲里執行的環境以及方法,不變的是抽象類abstract它的定義,但它本身不能提供輸入輸出,需要繼承方法來使用。

3.Comparable與Comparator

3.1 描述Comparable接口的用途。為什么某個類實現了Comparable接口就可以直接使用Arrays.sort對其進行排序?
因為Comparable的對象都可以進行比較,而Arrays.sort就是面向Comparable接口進行編程,所以可以進行排序。
3.2 有了Comparable接口為什么還需要Comparator接口呢?
Comparator接口是對Comparable接口功能的一種補充,更能豐富Comparable接口。
3.3 可選:使用匿名內部類、Lambda表達式實現PTA編程5-2。

4.面向接口案例分析

閱讀Case-StudentDao.zip案例

4.1 畫出類關系圖,描述每個類與接口的作用。
1109892-20170325174221455-925565912.png

4.2 StudenDaoListImpl與StudentDaoArrayImpl有何區別?
StudentDaoArrayImpl是用數組實現而且長度是固定的,而 StudenDaoListImpl是用ArrayList實現且是動態的。

5.什么是面向接口編程?面向接口編程的好處是什么?

面向接口編程就是代碼要與接口相關聯(例如課堂上學的Comparable接口),而不需要考慮怎么去實現即將方法的聲明與實現隔離開。只要某個類實現了相關的接口,我們編寫的面向接口的代碼就可以適用,當要修改某個模塊時,不必對其他模塊進行大改動所以這樣就方便靈活許多。

6.結對編程:面向對象設計(大作業2-非常重要)

內容:使用Java代碼完成上周做的面向對象設計大作業,需要有初步界面。實現的功能盡量簡單,少而精,只包含必要的功能,不要追求高大全。
寫出:類圖(盡量精簡,不用太多子類,兩個即可)、系統常用功能描述、關鍵代碼與界面
形式: 兩人依托碼云合作完成。請在這里貼出你們的學號、姓名與任務分工。
注意: 再過幾次課要講Java圖形界面編程,到時候要將該系統升級為圖形界面。系統的業務邏輯部分應該變化不大,變化大的是輸入與輸出部分。所以編碼的時候,輸入(Scanner)與輸出(System.out)的代碼,請不要將其與某個業務處理函數綁死。
選做加分: 給出兩人在碼云上同一項目的提交記錄截圖,額外加分。注:兩個人在碼云上新建一個項目。

3. 碼云上代碼提交記錄及PTA實驗總結

1109892-20170325180240768-1358361038.png

PTA實驗總結:這次問題主要是實現Comparable接口,實現先對name升序排序,假如name相同則再對age進行升序排序;因為要用Arrays.sort進行排序,所以要有覆蓋compareTo()的方法。接口還是算比較實用的一種方法。

轉載于:https://www.cnblogs.com/zcjj/p/6596159.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python中正則表達式講解

正則表達式是匹配字符串的強大武器,它的核心思想是給字符串定義規則,凡是符合規則的字符串就是匹配了,否則就是不合法的。在介紹Python的用法之前,我們先講解一下正則表達式的規則,然后再介紹在Python中如何運用。 如果…

電源適配器上各符號的意義都清楚嗎?

現在家里的電子產品是越來越多了,比如:手機、平板、筆記本、智能電視、智能音箱、路由器、剃須刀等;機身或者充電器上都有很多符號標志。 有沒有好奇過或者被小孩詢問過,這些符號標志都是什么意思呢?只有讀懂這些符號…

蘇寧海量服務器自動化配置運維實踐

運維的演進 人力運維階段 在IT產業的早期,服務器運維是通過各種Ad Hoc命令或者Shell腳本來完成基礎設施的自動化工作,這種方式對于簡單,一次性的工作很方便,但是對于復雜和長期的項目,后期的腳本維護非常麻煩。自動化工…

JS小技巧

JS操作偽元素 CSS代碼: #myId:before {content: "hello world!";display: block;width: 100px;height: 100px;background: red; } JS 代碼: var myIdElement document.getElementById("myId"); var beforeStyle window.getCompute…

流媒體服務器

1 引言   隨著互聯網的飛速發展,流媒體技術的應用越來越廣泛,從網上廣播、電影播放到遠程教學以及在線的新聞網站等都用到了流媒體技術。但現有公開文獻所報道 的大多是利用現有的流媒體服務器來搭建一個流媒體服務系統,或者是針對流媒體數據的編碼方式所進行的…

試產機器發現元器件損毀 風險排查過程

產品在試產階段或者公測階段,發現有個別機器功能異常,研發定位為個別元器件損壞; 定位過程大致有如下步驟: A-故障現象復現 B-輸入輸出檢查 C-電源及管腳狀態測量 D-交叉驗證 E-基本外觀觀察和特性測量 然后將器件郵寄給原…

騰訊面試經驗2

時間:2017年10月16日11:30面試。 地點:重慶萬達艾美酒店。 信息:女,本科應屆生,面試后臺開發崗位。 在深圳的面試已經全部結束了,偶然間聽朋友說重慶、長沙等場地的面試還在進行中,只要修改面試…

簡易有效Api接口防攻擊策略

API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。 簡單…

CSS 如何設置垂直居中

1、水平居中我們都知道,可以直接用: margin:0 auto; 2、垂直居中,需要做一點小小的計算,關鍵代碼如下: height: 600px; position: absolute; top: 50%; margin-top:-300px; 如需水平且垂直居中: height: 60…

被稱為海淀媽媽四大神器之一的傾聽者K3 硬件拆解

暑假期間發現很多博主都在推薦傾聽者K3,被海淀媽媽們稱為四大神器之一, 雖然暫沒聽說其他三大神器是什么,作為教育硬件愛好者還是決定先整個回來拆拆看。 在京東上搜到傾聽者K3版本一共有三種顏色,分別是藍色(悟空藍&…

有名信號量sem_open和內存信號量sem_init創建信號量的區別

有名信號量sem_open和內存信號量sem_init創建信號量的區別 分類: C/C sem_t *sem sem_open(const char *name, int oflag, .../*mode_t mode,unsinged int value) ;int sem_init(sem_t *sem,int shared, unsigned int value);區別:1.創建有名信號量必須…

KVM虛擬機相關步驟

KVM是Kernel-based Virtual Machine的簡稱,是一個開源的虛擬化模塊,該文檔是基于CentOS 7.4環境操作的 一、操作系統安裝 本文采用的是CentOS 7.4 1、查看系統版本 cat /etc/redhat-release 2、系統更新 Yum makecache &&yum update && …

dds設計信號發生器

高一 150206101 Dds數字信號發生器設計方案 DDS的工作原理框圖如下 在微機內,若插入一塊D/A轉換卡,然后編制一段小程序,如連續進行加一運算到一定值,然后連續進行減一 運算回到原值,在反復運行該程序,則微機…

Maven--資源文件resource的問題

2019獨角獸企業重金招聘Python工程師標準>>> Maven項目的目錄有: src/java/main src/java/resource src/test/main src/test/resource 有的時候在resource目錄下添加文件卻不能加載出來,解決的辦法是從把添加的資源文件添加到properties---&g…

pthread_create()創建線程最大個數

線程應用程序最常見導致創建線程失敗的原因是線程棧大小的設置。創建一個新的線程,默認情況下系統為線程棧預留了2MB的尋址空間。線程棧起始于進程虛擬 內存的高端地址,并向虛擬內存底端地址方向擴展。取決于線程本身的大小以及其它線程內存分配的情況&a…

C++ Primer 5 CH4 表達式

4.1 基礎 函數調用也是一種特殊的運算符,它對運算對象的數量沒有限制。C 的表達式要么是左值,要么是右值。左值可以位于賦值語句的左邊,右值則不可以。當一個對象被用作右值的時候,用的是對象的值;當對象被用作左值的時…

PHY以太網自動協商原理

自協商原理:自協商是通過一種叫做快速連接脈沖(Fast Link Pulse)的信號實現的,簡稱FLP。自協商的雙方通過FLP來交換數據。 在具備自協商能力的端口沒有Link的情況下,端口一直發送FLP,在FLP中包含著…

canvas--初級

摘要: canvas:默認寬高為300*150,需用canvas的API定義其寬高繪畫路徑以beginPath()開始,以closePath()結束常用方法fill()、stroke()、rect()、arc()、text()、lineTo()、moveTo()以下為代碼: var cdocument.getElementById("mycanvas&q…

撲克牌翻牌問題(遞歸)

撲克牌翻牌問題 題目描述: 有52張牌,使它們全部正面朝上,從第2張開始,凡是2的倍數位置上的牌翻成正面朝下;接著從第3張牌開始,凡是3的倍數位置上的牌,正面朝上的翻成正面朝下,正面朝下的翻成正面…

以太網自動協商原理

自協商基本原理 自動協商模式是端口根據另一端設備的連接速度和雙工模式,自動把它的速度調節到最高的公共水平,即線路兩端能具有的最快速度和雙工模式。 自協商功能允許一個網絡設備能夠將自己所支持的工作模式信息傳達給網絡上的對端,并接受…