20165214 第三週學習任務

20165214 2017-2018-2 《Java程序設計》第三週學習總結

教材學習內容總結

  • 編程語言的發展事是從面向機器(彙編、機器)到面向過程(C)再到面向對象(Java)
  • 關於累的機率,本身總結了一下,寫了幾個公式方便記憶:類=類聲明+類體類體=(成員)變量的聲明+方法方法=方法頭+方法體方法頭=類型 名稱 (參數類型 參數)(注:這裏參數能夠省略);方法體=(局部)變量的聲明+變量的操做
    • 注意類名、方法名、變量名要遵循起名的原則。
    • 成員變量在整個類中都有效,而且和它在類體中書寫的前後位置無關;它的操做只能在方法中;在聲明的時候同時賦值是合法的,但若是聲明後在方法外賦值則是非法的;它有默認值。
    • 局部變量只在方法內有效,而且和它在方法類書寫的前後位置有關;它沒有默認值;若是成員變量與局部變量的名字相同,則成員變量在這個方法中暫時失效,可是也可使用關鍵字this.[全局變量]來使用全局變量。
    • 類UML圖分爲名字層、變量層和方法層。
  • 構造方法的注意事項:名字與類名相同;沒有類型;能夠有多個構造方法,可是參數需不相同;沒有寫構造方法,系統會默認只有一個構造方法。
  • 對象:我以爲對象的引用跟C語言的結構體有點類似。
    • 建立對象包括對象的聲明+分配變量:[類名] [對象名][對象名] = new [類名]();
    • 不能使用空對象;使用[對象].[變量]來對對象進行變量的修改、方法的調用。
    • 一個類聲明的兩個對象若是有相同的引用,兩者就具備徹底相同的變量。
  • Java程序由多個類組成,咱們能夠把這多個類寫在不一樣的源文件中,而後把這些源文件放到同一個目錄下,以後只要編譯主類的源文件,其餘相關的源文件也會一塊兒編譯。而後主要運行主類的字節碼文件就能夠獲得想要的結果了。這樣方便程序的管理、維護。
  • 可變參數用···表示若干參數,他們的類型相同,最後一個參數是參數列表中的最後一個參數,例如public void f(int ...x)。這樣的意思是定義了若干個int類型的參數,具體的個數由輸入狀況決定,達到了動態分配的效果。與數組相似,能夠用下標來對可變參數進行操做,如x[0],x[1],而x.length等於x所表明的參數個數。同時,在第三章學習的增強的for語句也一樣適用於可變參數。
  • 對象的組合與複用和C語言的嵌套函數類似。如有兩個對象他們的引用相同,改變其中一個對象的變量,另一個對象的相應的變量也會跟着改變;可是若是改變其中一個對象的引用,那麼另一個對象的引用不變且對象裏面的變量會保持。
  • 實例成員和類成員的區別是:實例成員只能經過對象名來調用,而類成員能夠經過類名來調用;類成員是全部由這個類建立的對象共同擁有的;類方法只能操做類變量。定義類成員的關鍵詞是static
  • 方法重載:一個類中有多個方法能夠用相同名字,可是它們的參數必須不一樣,且不能出現歧義調用。
  • this關鍵字能夠出如今實例方法、構造方法中,不能出如今類方法中。this關鍵字一般能夠省略,只有當成員變量與局部變量相同時不可省略(在第三章裏也有提到)。
  • 包是管理類的一個機制,可以區分名字相同的類。語句爲package [包名],要寫在源文件的開頭。若是源文件沒有指定包名,則默認爲無名包的一部分。同屬於一個目錄下的沒有指定包名的源文件,他們屬於同一個無名包。
    • 在編譯和運行無名包時,要注意,源文件和字節碼都要在相應包名的目錄之下。編譯時,進入包名目錄的上一層目錄,使用javac */[包名]/源文件;運行時,也是進入包名目錄的上一層目錄,使用java [包名].[類名]。源文件能夠不放在包名目錄下,可是相應的字節碼文件必須放在包名目錄下。
  • 能夠利用import [包名].[類名]來調用不是同一個包的類。import語句放在package語句和源文件中類的定義之間;也能夠帶着包名來直接只用其餘包的類[包名].[類名] [對象名] = new [包名].[類名]。我以爲包名調用有4種狀況,處理方式也不相同:
    • ①有包名調用有包名:直接使用import
    • ②無包名調用無包名:把他們放在同一個目錄下;
    • ③無包名調用有包名:把有包名的包名目錄和無包名的文件放在同一個目錄下;
    • ④有包名調用無包名:不可能實現。
  • 訪問限制修飾符有private,protected,public,他們均可以用來修飾成員,可是類不能用private,protected來修飾。private使其餘類用本類建立的對象不能調用本類的變量和方法。publicprotected使其餘類用本類建立的對象調用本類的變量和方法,三者都不加的狀況下只有和本類同包的其餘類才能調用本類的變量和方法。
  • 對象數組的定義與普通數組的定義方式相同,可是要注意對象數組在定義後須要對每一個對象進行建立。
  • 除了第四章,我還總結了一下使用jdb調試的方法:

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

  • 問題1:上週我在第二週學習任務的問題裏寫了一個當時沒有解決的問題,就是我使用代碼統計腳本後只有行數的統計而沒有git 的記錄。
  • 問題1解決方案:以前我沒有把腳本放進個人倉庫裏面,而是放在了外面的home目錄,我使用mv指令把腳本放進倉庫後,再運行腳本,問題就解決了,下面我先補上週的截圖:


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

  • 問題1:當時在課上,我想複製老師博客裏面的一個程序來跟着老師的進度進行斷點調試,而後運行的時候發現了這樣的一個問題:
    html

  • 問題1解決方案:課後再看我才發現我把行數也給複製進去了。。就是每一行開始時候的那個數字。java

  • 問題2:在書本的Example4_5,我把程序都寫對了,可是就是運行不出來。
  • 問題2解決方案:在這道題裏,我沒有把全部編譯獲得的字節碼放在同一個目錄下,致使了這個問題。在我將他們挪到一塊兒後,這個問題就解決了。git

代碼託管


錯題總結

這周課上沒有測驗,藍墨雲的測驗因爲沒有答案,因此還總結不了。。下週補上。編程

其餘

第四章的內容不少,量跟前面三章的內容加起來差很少。同時這一章還比較重要。因此當我一開始看到這麼多的學習任務時,以爲很難,由於內容一多,學了就很容易忘,並且重點都很分散。這時候,我才發現了博客對於咱們的學習的重要意義。在寫博客時,咱們須要及時總結、及時記錄遇到的問題。這樣一來,學過的知識在咱們的整理之下變得層次分明,再回頭來看的時候很清晰簡潔,不會一團亂;而在總結時,咱們又對學習的知識有了一次仔細的複習,這樣一來對所學的知識就又有了更好的認識。
同時在這一章的學習中,我發現了有一個C語言的底子仍是蠻重要的。。不少寫法雖然不是如出一轍,可是其中的邏輯、思想沒多大的變化。不過比起C,Java真的方便了不少。這周我嘗試着用Java來寫了一個其餘課程的程序,而後就感覺到了它的方便之處。數組

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 36/36 1/1 8/8
第二週 432/468 2/3 15/23
第三週 964/1432 1/4 16/39
  • 計劃學習時間:15小時編程語言

  • 實際學習時間:16小時函數

相關文章
相關標籤/搜索