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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/8/22 编程问答 38 如意码农
生活随笔 收集整理的這篇文章主要介紹了 20155336 2016-2017-2 《Java程序设计》第四周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20155336 2016-2017-2 《Java程序設計》第四周學習總結

教材學習內容總結

第六章

  • 繼承:面向對象中,為避免多個類間重復定義共同行為。(簡單說就是將相同的程序代碼提升為父類。)
  • 特點:

    • 這里接觸到了新的關鍵詞,extends,在java語言中用estends來繼承父類的行為。
    • is-a原則,在java中子類只能繼承一個父類。要開始理解多態,必須先知道操作的對象是“哪一種”。
    • 多態,使用單一接口操作多種類型的對象。
    • 在繼承父類之后,定義與父類中相同的方法部署,但執行內容不同,稱為重新定義。
    • 如果某方法區塊真的沒有任何程序代碼操作,可以直接使用abstract標識該方法為抽象方法,該方法不用撰寫{}區塊,直接“;”結束即可。
  • 注意:

    • 關鍵字extends是為了擴充和繼承父類的行為。
    • 在java中一個子類只能繼承一個父類。
    • 在判斷操作對象是“哪一種”的時候,檢查語法的邏輯是否正確,方式是從=右邊往左邊讀:右邊是不是一種左邊呢(右邊類是不是左邊類的子類)?
    • 在重新定義中,子類必須撰寫與父類方法相同的簽署,如果因為疏忽打錯字就會完全不同(雖然編譯會成功,但是行為會完全不同),但在JDK5后標注@Override,表示要求編譯程序檢查是否真的重新定義父類中某個方法。
    • 子類如果繼承抽象類,對于抽象方法有兩種做法,一種是繼續標注該方法為abstract(必須在class前標注abstract),另一種就是操作抽象方法,如果都沒有實施,則會出現編譯錯誤。
  • 繼承與法細節:

    • 特點:

      • protected成員權限關鍵字,相同包中的類可以直接存取,不同包中的類可以在繼承后的子類直接存取。(不開放訪問權限,但可以直接存取。)
      • 如果想要取得父類中的方法定義,可以調用方法前,加上super關鍵字。
      • 在class前使用了final關鍵字定義,那么表示這個類是最后一個,不會再有子類,也就相當于不能再被繼承。在定義方法時候也可以限定為final,表示最后一次定義方法了,也就是子類不可以重新定義final方法。
      • 在java繼承中一定繼承了java.lang.Object,簡單來說任何類追溯至最上層類中一定是Object父類。
    • 注意:

      • JAVA中有3個權限關鍵字,public、protected與private,但實際上有4個權限范圍。
      • 若原來成員public,子類中重新定義時不可謂private或protected。
      • 在JDk5之前,重新定義方法時除了可以定義權限較大的關鍵字之外,其他部分必須與父類中方法簽署完全一致。
      • 在創建ArrayList實例時候,可以指定內部數組初始容量,如果使用無參數構造函數,則默認容量為16。
  • 垃圾收集:在執行流程中,無法通過變量參考的對象,就是GC(Garbage Collection) 認定的垃圾對象。

  • 抽象類:雖然是抽象方法,但在go()方法中,還是可以調用。

第七章

  • 接口:接口相當于另一種“繼承”,可任意操作接口內的行為。
  • 特點:

    • 接觸到了新的關鍵詞interface。這里是針對“定義行為”,在java中可以使用interface關鍵字進行定義。類要操作接口必須使用implements關鍵字
    • 接口可用于定義行為但不定義操作。
    • 行為的多態,判斷代碼中如同is-a原則相同,“右邊是不是擁有左邊的行為”或者“右邊對象是不是操作了左邊的接口”
    • 對于解決需求的變化,首先需要編寫有彈性、維護性的程序,即增加新的需求,在原有的程序無需修改,只需針對新需求撰寫程序。
    • 在編寫一個好的程序代碼的時候需要好的一個架構,各個架構之間可用操作接口來連接,也可以用子類繼承父類來連接。
  • 注意:

    • 接口的操作與類的繼承不同,在java中只能繼承一個父類,但是類可以同時繼承某個類,同樣的可以同時操作某些接口。
    • 關鍵字interface是用來定義操作的,關鍵字implements是用來類操作關鍵字的。
    • 操作某接口時,有兩種方法對接口進行定義,一種是操作接口中定義方法,另一種是再度將該方法標注abstract。
    • 在java中,接口可以繼承自另一個接口,也就是繼承父接口行為。
    • 在判斷行為的多態的時候,與判斷is-a原則相同,從=的右邊往左邊讀進行判斷。
  • 接口與法細節:

    • 接口的默認,在java中可使用interface來定義抽象行為與外觀,在接口中的方法沒有操作時,一定得是公開且抽象,public abstract。
    • 在接口枚舉中,一定要使用=指定值,否則就會編譯錯誤。
    • 在JDK5之后可用enum語法來定義枚舉常數。
  • 注意

    • 類可以操作兩個以上的接口,如果兩個接口都定義了某方法,如果表示相同的行為,那可以定義一個父接口,因為接口可以繼承別的借口,也可以同時繼承兩個以上的接口,通樣也是使用extends關鍵字。
    • 在JDK8之前,要在匿名內部類中存取局部變量,則該局部變量必須是final,否則會發生編譯失敗。
    • 關于enum定義枚舉常數時候,實際上enum定義了特殊的類,繼承自java.lang.Enum,直接撰寫程序繼承enum會被編譯程序拒絕。因為構造函數權限設定為private,在實際定義的某個類中,才可以將其實例化。

教材學習中的問題和解決過程

  • 問題一:不能很好的使用“is-a”原則判斷何時可以編譯成功何時可以編譯失敗,但是借助了書上的劍士與魔法師游戲的例子有所了解。比如:Role role1= new SwordsMan();Role role2 = new Magician();可以很好的有助于理解“哪一種”原則。
  • 問題二:對于3個權限關鍵字,但是有4個權限范圍的知識點,當看了書上的列舉的表格和書上給的參照實例,也有所了解。
  • 問題三:在構造函數部分,只知道在子類構造函數中沒有指定執行某個父類中的構造函數,會默認調用無參構造函數,但是看書后得知先執行子類中的函數,如果想執行父類中某構造函數,可以用super()指定。
  • 問題四:對于后來的構建框圖的時候有一點問題,根源在于類可以操作兩個以上的類,但是只能繼承一個類。當把握住這一點時候,對于框圖思路的搭建就好了許多,加上書上的Airplane的例子,首先設計一個Airplane作為Seaplane的父類,而Airplane操作Flyer的接口,Seaplane繼承Airplane后操作Swimmer接口,這樣Seaplane就有了可以飛行或者可以海面滑行的功能了。
  • 問題五:在使用enum定義枚舉常數的時候,不理解在類中才可以實例化的意思。結合書上的Action的例子,發現enum實際上是一種繼承,但不能直接編譯,所以,在類中才可以將其實例化。

代碼調試中的問題和解決過程

  • 問題:在編輯Game1的時候,對于理解繼承存在一點問題。當利用extands繼承Role的時候,編輯總是不能通過。前面Role.java明明已經編通過了,所以,我就在疑惑問題出在了哪里,難道是要將這四個代碼放到同一個.java中,用同一個public公開類嗎?可我又在疑惑,如果這樣子的話,其他三個.java文件的公開類又該如何修改?

  • 解決:經過詢問同學,知道了父類和即將繼承的子類之間的關系,不需要將這幾段段代碼放到同一個.java文件夾下,只要放到同一個package下就可以繼承了。但是編輯不通過,問題又出現在了哪里? package cc.openhome;,問題出在了這里!把每個.java中的這行代碼刪掉,編輯就可以通過了。可是這個包的作用到底是什么,書翻到第二章看了書上的概念,還是不太理解,什么時候用,什么時候不用,希望老師能夠講講。

代碼托管http://git.oschina.net/bestiisjava2017/bestijava20155336huguangyuan

  • 代碼提交過程截圖:

     

  • 代碼量截圖:

上周考試錯題總結

  • 2.填空:~0b1010的十進制值是(-11)
  • 4.填空:System.out.println(“”+52+25);的結果是(5225);
  • 5.判斷: Java中,=與==并沒有在基本類型和類類型的不同。(√)
  • 8.填空:Java中方法參數只用(傳值)調用。

其他(感悟、思考等,可選)

這周的學習,感覺更多是一種延伸。這兩周已經很明顯可以感覺到學習java的壓力了,每周要學習兩章的知識。在自習的時候的的確確存在很多問題,越來越覺得java的難度,但是同樣的也感受到了java學習的魅力。雖然以前的c語言學習一般,但是通過這四周的java學習,還有自己代碼的積累,漸漸的發現雖然敲代碼是一件很枯燥無味的工作,但是敲完代碼回頭看發現這樣的敲代碼真的可以便于理解書上不懂得問題。就像編程一樣,當遇到了問題后需要去嘗試解決,去想辦法解決問題。在這幾周的學習,發現自己的元知識也扎實了不少,軟知識也有了很大的提高。也發現這這種自主性學習好像學習完之后會更加有成就感。

學習進度條

老師,我的MD有個問題

每次把老師的進度條模板復制下來后,都會顯示的都很亂。。。。。就跟這個圖一樣~~~課代表也不知道該怎么解決。

| | 代碼行數(新增/累積)| 博客量(新增/累積)|學習時間(新增/累積)|重要成長|

| -------- | :----------------:|:----------------:|:---------------: |:-----:|

| 目標 | 5000行 | 30篇 | 400小時 ||

| 第一周 | 200/200 | 2/2 | 20/20 ||

| 第二周 | 300/500 | 2/4 | 18/38 | 學習java的基礎語法 |

| 第三周 | 500/1000 | 3/7 | 22/60 |學習java對象及封裝 |

| 第四周 | 300/1300 | 2/9 | 30/90 | 學習了繼承與多態的關系,以及接口的多態操 |

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

  • 計劃學習時間:21小時

  • 實際學習時間:16小時

  • 改進情況:

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

參考資料

  • Java學習筆記(第8版)

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

  • ...

總結

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

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