20172329 2017-2018-2 《程序設計與數據結構》第四周學習總結

20172329 2017-2018-2 《程序設計與數據結構》第四周學習總結

教材學習內容總結

第四章:

  • 學習瞭如何編寫類;
  • 瞭解類的構成與用途;
  • 理解了各個數據的不一樣和其各自特色;
  • 學習了不少新的語句和方法;

第七章:

  • 瞭解了靜態變量和靜態的方法;
  • 類與類之間的關係和關聯性;
  • 相比於以前實例數據的引用增添了「this」語句的引用;
  • 學習瞭如何在編寫類中加上接口,而且學習了幾個接口如何運用;
  • 知道了編寫程序所須要的幾個步驟;

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

第四章:

  • 問題1:setxx和getxx有什麼區別,如何運用和區分它們兩個?html

  • 問題1解決方案:經過百度和查書,獲得了這樣的解答:「setX叫作修改器,其中X是要修改的數據成員的名稱。getX叫作獲取器或訪問器,X是要訪問的數據成員的名稱。」
    在看書和查資料的同時,我發現廣泛時候有這樣的一種格式:java

    public int/double/... getX()
      {
      return x;
      }
      public void setX()
      {
      XXX = xxx;
      }

    (ps:當時不知道對不對,據我觀察大多都是這樣,由於在前期學習的時候,沒有太深刻理解,可是是靠這樣的方法記憶下來了,現在已經理解)git

  • 問題2:編寫類是由哪些東西構成的,各個部分起到什麼做用?api

  • 問題2解決方案:其實對於一個新手來說,看懂例題就花了我很多時間,由於沒有仔細閱讀過書是真的很難去理解例題裏的各個部分的構成,有什麼做用。
    編寫類中大體起關鍵做用的包括兩個內容:構造函數和方法。它們可使這個類變得有效,能夠在程序中利用。數據結構

  • 問題3:在看到書裏有些寫到這樣一句話多線程

"其方法名和類名相同「app

<span style="color:red">  只想問爲何...
  • 問題3解決方案:看了不少百度上的回答,我總結了一句話「由於懼怕電腦分不清哪一個是構造方法,哪一個是普通方法。」看到這個回答,我以爲回答和沒回答的區別不是很大。dom

  • 問題4:toString與return返回的值的區別?ide

  • 問題4解決方案:看了書和百度,說是:toString 方法,返回字符串,return返回值(變量)函數

第七章:

問題1:爲何不能把全部方法定義成靜態方法,不是很方便嗎?
問題1解決方案:我看了不少網上的評論,有不少中說法,我總結了幾點:
一、非靜態方法用於對象。靜態方法用於工具類;
二、用static修飾的方法,也就是靜態方法,是屬於這個類的,而後從加載的時候就會一直存在在內存中,不會被回收,一直到系統中止運行,在開發大型軟件的時候會致使內存溢出;
三、static方法是類對象的方法,加鎖時會鎖住類對象。多線程時會出現性能問題。

問題2:在設置接口的時候必定須要接口包嗎?
問題2解決方案:查看網評的時候看到:「通常的開發規範要求接口和實現類是分開的,接口在一個專門的包裏,實現類在一個專門的包裏。」,說是通常而言,我想知道有沒有特別的例子,可是沒有查到。

問題3:接口類必須單獨寫在一個文件中嗎?
問題3解決方案:查找資料能夠知道,說是否是強制的,一樣也是通常而言。

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

第四章:

  • 問題1:在一開始本身編寫4.1例題的時候發生這樣的問題:

  • 問題1解決方案:由於當時沒有理解在教材問題總結第一個那個問題的時候,錯把「int」打成了「void」;
    如圖:

  • 問題2:由於出現了多個public定義構造方法使得計算機不能識別:

  • 問題2解決方案:刪除了public就ok了;

第七章:

  • 問題1:在作到pp7.4接口的問題,真的讓我頭疼,還好有大佬幫助,解決了問題;

  • 問題1解決方案:

代碼託管

上週考試錯題總結

  • 錯題1
    In Java a variable may contain
    A .a value or a reference
    B .a package
    C .a method
    D .a class
    E .any of the above

    正確答案: A 個人答案: E

緣由:當時在作這道題的時候猶豫了半天,忽然概念就模糊了,原本選的A最後總感受哪裏不對,仍是選了E。

  • 錯題2
    Which properties are true of String objects?
    A .Their lengths never change
    B .The shortest string has zero length
    C .Individual characters within a String may be changed using the replace method
    D .The index of the first character in a string is one
    E .Only A and B are true

    正確答案: E 個人答案: B

緣由:選了一個正確的,沒有看E,發現B是對的,就直接選了。

  • 錯題3
    What is the function of the dot operator?
    A .It serves to separate the integer portion from the fractional portion of a floating point number
    B .It allows one to access the data within an object when given a reference to the object
    C .It allows one to invoke a method within an object when given a reference to the object
    D .It is used to terminate commands (much as a period terminates a sentence in English)
    E .Both B and C are correct

    正確答案: E 你的答案: B

緣由:對書本的眼都不夠仔細,在看到浮點這部分的時候理解不夠充分。

  • 錯題4
    In 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(".")?
    A .Einstein.
    B .EINSTEIN.
    C .XINSTXIN.
    D .einstein.
    E .xinstxin.

    正確答案: C 你的答案: A

緣由:這道題,本身當時沒有看着一部份內容的講解,怪我本身沒有認真看書,例題中也沒有仔細的去分析每一步作什麼。

  • 錯題5
    Say you write a program that makes use of the Random class, but you fail to include an import statement for java.util.Random (or java.util.*). What will happen when you attempt to compile and run your program.
    A .The program won't run, but it will compile with a warning about the missing class.
    B .The program won't compile-you'll receive a syntax error about the missing class.
    C .The program will compile, but you'll receive a warning about the missing class.
    D .The program will encounter a runtime error when it attempts to access any member of the Random class
    E .none of the above

    正確答案: B 你的答案: C

緣由:看到這個題目和答案,發現答案真的好類似,當時就蒙了,就是對於這個內容的理解不夠。

  • 錯題6
    Consider the following two lines of code. What can you say about s1 and s2?
    String s1 = "testing" + "123";
    String s2 = new String("testing 123");
    A .s1 and s2 are both references to the same String object
    B .the line declaring s2 is legal Java; the line declaring s1 will produce a syntax error
    C .s1 and s2 are both references to different String objects
    D .s1 and s2 will compare "equal"
    E .none of the above

    正確答案: C 你的答案: D

緣由:對於字符串的理解沒有到位,當時查了書,可是仍是打錯了,仍是要仔細看書。

  • 錯題7
    The advantage(s) of the Random class' pseudo-random number generators, compared to the Math.random method, is that
    A .you may create several random number generators
    B .the generators in Random are more efficient than the one in Math.random
    C .you can generate random ints, floats, and ints within a range
    D .you can initialize and reinitialize Random generatorsE .
    all but answer B

    正確答案: E 你的答案: A

緣由:在比較靜態方法中,當時我老是分不清靜態方法和方法調用,由於都是用到了浮點。

  • 錯題8
    When comparing any primitive type of variable, == should always be used to test to see if two values are equal.
    A .true
    B .false

    正確答案: B 你的答案: A

緣由:搞混概念。

  • 錯題9
    These two ways of setting up a String yield identical results:
    a) String string = new String("123.45");
    b) String string = "" + 123.45;
    A .true
    B .false

    正確答案: A 你的答案: B

緣由:這種題目在考試裏出現了不少次,當時一度很崩潰,沒有分清String的概念。

  • 錯題10
    If you need to import not only the top-level of a package, but all its secondary levels as well, you should write: import package..;
    A .true
    B .false

    正確答案: B 你的答案: A

緣由: 打包理解有些問題。

  • 錯題11
    The names of the wrapper classes are just the names of the primitive data types, but with an initial capital letter.
    A .true
    B .false

    正確答案: B 你的答案: A

緣由:概念的混淆和知識點理解不清晰。

其餘

步入這一章節發現了Java學習開始變困難了,由於例題不是很容易就能夠看懂,並且書裏的內容有時候也不能特別看的懂,它要求咱們的自學能力和辯讀能力很強。開始學習第四章的過程當中,編寫類的時候真的特別讓我難過,由於當時在課上進行實驗,課上我就沒有弄出來,花費了一中午加一下午才弄懂,才理解了編寫類所須要的東西。後來又加上類的依賴性,連續幾個幾十行的代碼敲的我茶不思飯不想的,晚上又由於還要練啦啦操,別人就會比我多學一個半小時,因此我就晚上比他們多學一個小時才能夠跟上進度,晚上敲到電腦沒電,就繼續看會兒書,找一些問題容易次日去問老師或是同窗。緊接着就是學習第七章,發現難度的提高是由於編寫類的時候,那個代碼量,真的讓我懼怕(萌新的思想),看到那個160行的類,當時就安靜了(我這一週敲得代碼,比上三週加起來還多),繼續敲吧(想起來同窗曾經說的話「本身選的路,跪着也要走完」,可是其實敲完一個「小」程序特別開心,真的想哭.....)

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 5000行 30篇 400小時
第一週 156/156 1/1 15/15
第二週 217/371 1/2 20/35
第三週 233/604 2/4 20/55
第四周 1382/1986 1/5 35/90

參考:

Java程序設計

相關文章
相關標籤/搜索