1. 程式人生 > >20172326《程序設計與數據結構》第四周學習總結

20172326《程序設計與數據結構》第四周學習總結

source lis 簡單的 初學 JD 並且 本周 mit 成長

學號 20172326 《程序設計與數據結構》第四周學習總結

教材學習內容總結

  • 構造方法的理解
  • 簡單的類的編寫
  • 參數,對象,類的關系
  • 局部變量
  • 接口的理解

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

  • 問題1:構造方法的問題。
  • 問題1理解:構造方法是一個類的主體,主要規定了基本參數,從而使得新的對象在實例化的過程中輸入相應的參數並且依次讀取相應參數,而構造方法中的參數是主要數據,所以在編寫時應當圍繞其展開。而至於類中其他的方法,則是圍繞設計需求所展開。如果需要調用其他方法的參數,可以在類首中申明或在方法中使用return語句返回該值。
  • 問題2:形式參數
  • 問題2理解:初學時,類中的方法有的是空括號,有的則是含有參數名,當時令人十分困惑,例如getX()方法中就沒有參數,只是將其返回。但也有別的方法在括號中規定了參數。課本上說到

    “形參時標識符,充當方法中的變量,一個方法的形參初始值由調用該方法時的實參賦予。調用方法時,每個實參的值被復制後保存到相應的形參中。”

  • 這就是說對於一個方法 ,在作為一個方法時必然沒有具體的數據,否則也不會被稱為方法。但做為一個方法的必要元素,必須要有參數,即使括號為空。
  • 問題3: 例題7.4中的RationalNumber方法

    public RatonalNumber add(RationalNumber op2)
  • 問題3理解:一開始看到這裏時,充滿了迷惑,即前後並未對該參數進行申明,那麽它是怎麽被調用的呢?剛開始,我以為這是一種“方法”可以被直接使用,但是在JDK中並未查到,之後學習了接口知識後,這是不是一種接口呢?明顯不是,在類首並未有任何接口的信息。(不過,確實存在add接口)那麽,這個方法到底時怎麽回事呢?結合註釋與測試程序,程序中有這樣一個片段

    r4 = r1.add(r2);

    看來add可以被直接調用,並沒有想的那麽復雜,只是一個編寫的一個普通方法而已;而至於為什麽沒有申明RationNumber op2,首先RationalNumber在構造函數就有,op是面向對象的簡稱,也就是說op2是第二個對象,也就是測試程序中的r2。所以可以直接被直接帶入方法之中。

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

  • 問題1:PP4.5的編寫 其中主要有一個問題就是用布爾值來表示其是否為古董車
  • 問題1解決方案:用布爾值來返回,第五章有相關知識,可以使用if語句來實現,但當時並未學習相關知識,那麽有沒有別的方法呢?在於助教以及同學交流後找到了方法。
    技術分享圖片
    技術分享圖片
    可以發現,布爾值是由自動定義的,如果大於給定數字,自動給出true或false。
  • 問題2:comparable接口的實現
  • 問題2解決方案:本來思路為,利用格式化將double型轉化為string,接著再次轉化為double型。但事實證明,這完全是扯犢子,因為本題核心還是在於實現接口,回顧書本,再結合網上。這樣即可解決
    技術分享圖片

技術分享圖片

技術分享圖片

代碼托管

技術分享圖片

上周考試錯題總結

  • 錯題1如果兩個變量包含同一對象的別名,那麽
  • 別名提供了一種可以修改對象的方法,使得可以有兩個內容相同的對象
  • 錯題2String對象的哪些屬性是真的?
  • 第一個索引為0
  • 錯題3如果在初始化之前嘗試使用變量會發生什麽?
  • 沒有這個變量,缺少相關的數據,程序無法運行,且會出現語法錯誤。
  • 錯題4點運算符的功能是什麽?
  • 允許在給定對象的引用時訪問對象內的數據以及在給定對象的引用時調用對象中的方法。
  • 錯題5In the StringMutation program shown in Listing 3.1, if phrase is initialized to "Einstein" what will Mutation #3 yield if Mutation #1: mutation1 = phrase.concat(".")?
  • 本題需要結合例題,根據具體來分析
  • 錯題6Which of the following will yield a pseudorandom number in the range [ -5, +5 ) given the following:Random gen = new Random( );
  • nextInt()不能再外部進行加減以改變範圍
  • 錯題7An "alias" is when
  • 兩個相同的參考變量引用同一變量
  • 錯題8When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
  • 整數型可以,但浮點型不能,但可以運用比較精度,同時浮點數本身是一種近似誤差來表示,老師有在課堂上提到過。
  • 錯題9Java.text‘s NumberFormat class includes methods that
  • 格式化百分比與格式化貨幣
  • 錯題10The advantages of the DecimalFormat class compared with the NumberFormat class include
  • 可以確定格式化結果的小數點精度

    其他

  • 本周學習內容較多,而且涉及內容有類的編寫與接口的實現,很多地方都很難想到,不過,確實需要多問,對於整個流程還不夠熟悉,比如軟件的需求等分析,所以接下來要繼續敲更多的代碼。還有就是commit message還是不太理解,需要繼續學習。

    學習進度條

    代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
    目標 5000行 30篇 400小時
    第一周 110/200 1/1 20/20
    第二周 425/500 2/ 2 18/38
    第三周 900/1000 4/4 22/60
    第四周 1500/1300 5/ 5 30/90

    本周的代碼腳本似乎除了問題,現在正在調整,也已經問了老師。不過代碼數是差不多的。

參考資料

  • 《Java程序設計與數據結構教程(第二版)》
  • 《Java程序設計與數據結構教程(第二版)》學習指導技術分享圖片

技術分享圖片

20172326《程序設計與數據結構》第四周學習總結