日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

20155305乔磊2016-2017-2《Java程序设计》第四周学习总结

發布時間:2023/11/30 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20155305乔磊2016-2017-2《Java程序设计》第四周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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;

多態

  • 使用單一接口操作多種類型的對象,具有更高的可維護性。
  • Java以繼承及界面來實現多態,是次態多態的一種實現。

    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參數參考的就是SwordsMan實例,操作的就是SwordsMan上的fight()方法定義。
  • 重新定義父類中某個方法時,子類必須撰寫與父類方法中相同的簽署。可以在子類中某個方法前使用@Override要求編譯程序檢查該方法是不是真的重新定義了父類中某個方法,如果不是會引發編譯錯誤。
  • 對于父類中的方法權限,只能擴大不能縮小。

抽象方法 抽象類

  • 抽象方法:某方法區塊中沒有任何程序代碼操作,用abstract表示該方法為抽象方法,不用撰寫{}區塊,直接";"結束即可。
  • 抽象類:內含抽象方法的類,一定要在class前標示abstract,表示類定義不完整,不能用來生成實例。

protected

  • 被聲明為protected的成員,相同包中的類可以直接存取,不同包中的類可以在繼承后的子類直接存取。
  • private、無關鍵字、protected、public權限依次遞增。

構造函數

  • 類有繼承關系時,會先進行父類定義的初始流程,再進行子類定義的初始流程。
  • 父類中可以重載多個構造函數,如果子類構造函數中沒有制定執行父類中哪個構造函數,默認會調用父類中無參數構造函數。
  • this()和super()只能擇一調用,并且要寫在構造函數第一行執行。

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的時候出現了問題

    后來在run edit中發現自己把各項都改成了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())方法
    上網查Interger對象的比較方法寫的是ValueOf()。老師答案是comareTo()。不太理解。
  • 填空:“30”轉化為byte類型的30的語句是(Byte.parseByte(“30”);)。

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標3000行20篇400小時
第一周200/2001/118/18
第二周153/3531/218/36
第三周356/7091/324/60
第四周450/12591/428/85

參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法

  • 計劃學習時間:30小時

  • 實際學習時間:28小時

  • 改進情況:計劃學習時間由于上周沒有達成,所以這周仍然定為30小時,學習時間有所提高。

  • 有空多看看現代軟件工程 課件 軟件工程師能力自我評價表

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導

轉載于:https://www.cnblogs.com/20155305ql/p/6537588.html

總結

以上是生活随笔為你收集整理的20155305乔磊2016-2017-2《Java程序设计》第四周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。