20165203《Java程序設計》第四周學習總結

教材學習內容總結

第5章 子類與繼承
  1. 子類的繼承性
  • 子類和父類在同一包中的繼承性:子類繼承父類中不是private的成員變量和方法做爲本身的成員變量和方法
  • 子類和父類不在同一包中的繼承性:子類只繼承父類中的protectedpublic訪問權限的成員變量和方法做爲子類的成員變量和方法
    2.成員變量的隱藏
  • 子類對象以及子類本身定義的方法操做與父類同名的成員變量是指子類從新聲明的這個成員變量。
  • 子類繼承的方法所操做的成員變量必定是被子類繼承或隱藏的成員變量
    3.方法的重寫
  • 子類中定義的這個方法要和父類中被覆蓋的方法類型一致
  • 重寫的方法既能夠操做繼承的成員變量、調用繼承的方法,也能夠操做子類新聲明的成員變量、調用新定義的其餘方法,但沒法操做被子類隱藏的成員變量和方法。
    4.super關鍵字:
  • 子類中想使用被子類隱藏的成員變量或方法
  • 子類在其構造方法中需使用super來調用父類的構造方法,並且super必須是子類構造方法中的頭一條語句。
    5.final
  • final類不能被繼承,不能有子類。
  • final方法不容許子類重寫
  • final修飾成員變量或局部變量,他就是常量,且運行期間不容許發生變化。
    6.abstract
    -abstract類能夠有abstract方法,也能夠有非abstract方法,可是非abstract類只有非abstract方法
第6章 接口與實現

1.接口聲明java

  • 接口經過使用關鍵字interface來聲明
  • 格式:interface 接口的名字

2.接口體git

  • 接口體中包含常量定義和方法定義兩部分。
  • 接口體中只進行方法的聲明,不準提供方法的實現,
  • 因此,方法的定義沒有方法體,且用分號「;」結尾。

3.接口回調數組

能夠把實現某一接口的類建立的對象的引用賦給該接口聲明的接口變量中,  
那麼該接口變量就能夠調用被類重寫的接口方法。  
實際上,當接口變量調用被類重寫的接口方法時,就是通知相應的對象調用這個方法。

4.abstract類與接口的比較學習

  • abstract類和接口均可以有abstract方法。
  • 接口中只能夠有常量,不能有變量;而abstract類中便可以有常量也能夠有變量。
  • abstract類中也能夠有非abstract方法,接口不能夠。.net

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

    Q1:當學習到子類和父類不在同一包中的繼承性時,提到privatepublicprotect,他們之間的區別是什麼?3d

A1:通過回顧第四章的內容,我總結了一下:
調試




修飾符 修飾變量和方法
private 若是A類中某個成員是private類變量和方法,那麼另外一個類B中,不能經過類名A來操做這個變量和方法
public 若是A類中某個成員是public類變量和方法,那麼另外一個類B中,能經過類名A來操做這個變量和方法
protect 若是在另一個B中用類A建立了一個對象後,若是A和B在同一個包中,那麼該對象能夠訪問本身的protect變量和方法。

Q2:(未解決)對於如圖所示代碼,出現問題:
若是computer方法的接口的參數是float型,爲何在主類上,實參是8和9是int型?
code

Q3:(未解決)對於如圖所示代碼,爲何要這麼寫,而不是直接給對象的實體變量賦值?
對象

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

Q1:(未解決)在調試代碼時,出現瞭如圖所示情況:
blog

Q2:(已解決)編譯運行時,出現瞭如圖所示錯誤:

A2:我上網查詢了,總結了一下出現該問題的緣由:
通常出現此問題的緣由爲:

  • 花括號沒有閉合
  • 缺乏了分號
    仔細檢查了一下本身的程序,確實是在父類中少打了一個}

Q3:(已解決)此前在學習以前的內容時,一直存在一個問題,出現類和主類不在同一個包裏時,在編譯主類時,老是出現錯誤,找不到類,不知是什麼緣由?
A3:在同窗的幫助下,找到了緣由,我以前並無在類的文件夾以外編譯運行,在文件夾以外運行後,編譯成功了。

Q4:(已解決)以前運行代碼時,出現了printlnprintf敲錯的問題,爲此,我特地總結了一下區別:

A4:
printf主要是繼承了C語言的printf的一些特性,能夠進行格式化輸出
print就是通常的標準輸出,可是不換行
printlnprint基本沒什麼差異,就是最後會換行

代碼託管

上週考試錯題總結

Q1:

這道題儘管作對,可是我仍是想了解一下java demo 3的含義。

Q2:

A2:int強制轉換字符表示字符的Unicode碼,即字符在Unicode表中的位置。
Q3:

A3:漏選了A項,字符串數組的初始化後面必需要加{ }。詳情可繼續參照java字符串數組初始化和賦值

其餘

隨着學習內容的增多,咱們在以後的學習過程當中不免會出現對前面的知識出現模糊的狀況,這並不可怕,其實,這反而是一件好事,幫助咱們瞭解本身對於前面知識點的漏洞,隨後進行查漏補缺,會對整個知識體系的掌握有很大的好處。

另外,本身要學會對比總結學習,所謂對比總結就是對比一些很類似但又不一樣的知識點,並總結他們的相同點和不一樣點,這樣知識會掌握的更加牢固。

還有,經過本週的考試,本身明顯吃力了不少,應該本身嘗試編代碼,而不是一味地敲書上的代碼,應該多實踐,多動手,理論+實踐。

學習進度條

~ 代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第三週 1716/1500 1/2 30/90

參考資料

print&println&printf

相關文章
相關標籤/搜索