20155305乔磊2016-2017-2《Java程序设计》第四周学习总结
生活随笔
收集整理的這篇文章主要介紹了
20155305乔磊2016-2017-2《Java程序设计》第四周学习总结
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
20155305喬磊2016-2017-2《Java程序設計》第四周學習總結
教材學習內容總結
繼承
- 繼承就是避免多個類間重復定義共同行為。
- 面向對象中,子類繼承父類,就是把程序中相同的代碼部分提升為父類。
- extends關鍵字,表示前者會擴充后者的行為,即繼承后者的行為。fight()為SwordsMan擴充的Role沒有的行為。
- private成員也會被繼承,不過子類無法直接存取,必須通過父類提供的方法存取。
is-a(是一種)關系
- 子類只能繼承一個父類,這種子類父類之間的關系就是is-a關系。
- 檢查語法邏輯是否正確,方式是從=右邊往左讀:判斷右邊是不是一種左邊。例:Role role1=new SwordsMan();即判斷SwordsMan是不是一種Role?若是則語法正確,反之則編譯失敗。
- 強制讓后者是一種前者:Role role1=new SwordsMan();SwordsMan swordsman=(SwordsMan) role1;
多態(tài)
- 使用單一接口操作多種類型的對象,具有更高的可維護性。
Java以繼承及界面來實現(xiàn)多態(tài),是次態(tài)多態(tài)的一種實現(xiàn)。
public class RPG2{public static void main (String[] args){SwordsMan swordsMan = new SwordsMan();swordsMan.setName("Justin");swordsMan.setLevel(1);swordsMan.setBlood(200);Magician magician = new Magician();magician.setName("Moinca");magician.setLevel(1);magician.setBlood(100);showBlood(swordsMan); //SwordsMan是一種RoleshowBlood(magician);}static void showBlood(Role role) //聲明為Role類型{System.out.printf("%s 血量 %d%n",role.getName(), role.getBlood());}}
重新定義行為
- SwordsMan與Magician的fight()方法簽署的都是public void fight(),操作接口相同,只是方法操作內容不同,因此,可以將fight()方法提升至Role類中定義。
- 如果傳入drawFight()的是SwordsMan,role參數(shù)參考的就是SwordsMan實例,操作的就是SwordsMan上的fight()方法定義。
- 重新定義父類中某個方法時,子類必須撰寫與父類方法中相同的簽署。可以在子類中某個方法前使用@Override要求編譯程序檢查該方法是不是真的重新定義了父類中某個方法,如果不是會引發(fā)編譯錯誤。
- 對于父類中的方法權限,只能擴大不能縮小。
抽象方法 抽象類
- 抽象方法:某方法區(qū)塊中沒有任何程序代碼操作,用abstract表示該方法為抽象方法,不用撰寫{}區(qū)塊,直接";"結束即可。
- 抽象類:內含抽象方法的類,一定要在class前標示abstract,表示類定義不完整,不能用來生成實例。
protected
- 被聲明為protected的成員,相同包中的類可以直接存取,不同包中的類可以在繼承后的子類直接存取。
- private、無關鍵字、protected、public權限依次遞增。
構造函數(shù)
- 類有繼承關系時,會先進行父類定義的初始流程,再進行子類定義的初始流程。
- 父類中可以重載多個構造函數(shù),如果子類構造函數(shù)中沒有制定執(zhí)行父類中哪個構造函數(shù),默認會調用父類中無參數(shù)構造函數(shù)。
- this()和super()只能擇一調用,并且要寫在構造函數(shù)第一行執(zhí)行。
final關鍵字
- class或方法被聲明為final,表示這是最后一個,不會再有子類或子類不可以重新定義方法。
java.lang.Object
- java.lang.Object是最上層父類,Java中所有對象一定是一種Object。
接口的默認
- Java中可以使用interface來定義抽象的行為和外觀。
- 接口中的方法沒有操作時一定得是公開且抽象的。
- 接口可以繼承別的接口,也可以同時繼承兩個以上的接口,同樣也是用extends關鍵字,這代表了繼承父接口的行為。
匿名內部類
- 臨時繼承某個類或操作某個接口并建立實例,由于這類子類或接口操作類只使用一次,不需要為這些類定義名稱,可以使用匿名內部類。
教材學習中的問題和解決過程
- 問題:本來像書上p167中的fight()方法運行都沒有問題,但是按照書上p169抽象方法與抽象類中,將前面的Role.java中的fight()方法改成如下的格式public abstract void fight();之后,RPG.java就運行不了了。
- 解決方法:待解決。
代碼調試中的問題和解決過程
- 問題:Guest訪客名稱,訪客名單在run的時候出現(xiàn)了問題
后來在run edit中發(fā)現(xiàn)自己把各項都改成了Guest - 解決方法:把run edit中各項改了
運行結果正確
代碼托管
上周考試錯題總結
- 填空:Linux Bash中,(grep )命令可以進行全文搜索。
- 填空:System.out.println(“”+52+25);的結果是(5225)
- 填空:System.out.println(52+25+””);的結果是(77)
- 填空:p86 命令行下編譯Guess.java的命令是(javac -d . Guess.java)
- 填空:兩個Integer對象比較大小,可以使用(comareTo())方法
上網(wǎng)查Interger對象的比較方法寫的是ValueOf()。老師答案是comareTo()。不太理解。 - 填空:“30”轉化為byte類型的30的語句是(Byte.parseByte(“30”);)。
學習進度條
| 目標 | 3000行 | 20篇 | 400小時 | |
| 第一周 | 200/200 | 1/1 | 18/18 | |
| 第二周 | 153/353 | 1/2 | 18/36 | |
| 第三周 | 356/709 | 1/3 | 24/60 | |
| 第四周 | 450/1259 | 1/4 | 28/85 |
參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法
計劃學習時間:30小時
實際學習時間:28小時
改進情況:計劃學習時間由于上周沒有達成,所以這周仍然定為30小時,學習時間有所提高。
有空多看看現(xiàn)代軟件工程 課件 軟件工程師能力自我評價表
參考資料
Java學習筆記(第8版)
《Java學習筆記(第8版)》學習指導
轉載于:https://www.cnblogs.com/20155305ql/p/6537588.html
總結
以上是生活随笔為你收集整理的20155305乔磊2016-2017-2《Java程序设计》第四周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 项目计划总结
- 下一篇: 利用Arcgis for javascr