《Java程式設計》第五次學習總結
阿新 • • 發佈:2018-12-25
學號 《Java程式設計》第五次學習總結
教材學習內容總結
JAVA Fundations : 資料結構。
Java程式設計 第八版
目錄
.- 目錄
- 第八章:陣列
- 第九章:繼承
第八章 陣列
- 陣列是物件。
- 確定陣列中元素的地址的方法:某個元素的地址值 = 該元素在陣列中的索引值✖每個元素所佔的位元組數(根據陣列型別來確定的) + 該陣列的起始地址。
- 一旦陣列宣告中確定了陣列的大小之後,陣列的大小就不能變化了,即:陣列能夠儲存的值的個數就不可再改變了。
- 每個JAVA陣列都是迭代器,所以可以用 for-each 迴圈來處理陣列中的每個元素即:for(int i:array){}
- 陣列索引值必須小於陣列的個數length。
- 陣列物件中的length是常量,它儲存了陣列的長度。由上一條可知:陣列的最大索引值是(length-1)
- 陣列是物件,所以當把一個數組作為形參傳遞給方法時,該方法可以改變陣列的元素值,但不能改變陣列引用本身。即:你改不了門牌號,要是你改了,其他人怎麼來找到這個人。。。但由於你有門牌號(這個“門牌號”只是影印得到的一個副本,真正的原件還在新區的房間裡放著,方便後面的人也得到這個原件的副本,從而也可以找到我)這個地址,所以你找到了這個人,你可以對這個幹些什麼,比如:約出去吃飯。
- 物件陣列:非常類似一個概念“陣列的巢狀”,陣列A中存放著陣列B。但是,這裡的陣列A的元素裡放著的是一個一個物件的引用,即:一個一個同類型物件的地址!不是普通意義上的一個數組B。 書上的例子8.7以及我編的PP81都有著這種“巢狀”的思想!
- 命令列實參:將在命令列輸入的 java * 1,2,3,4 中的,1,2,3,4放進String[] args 陣列,以供main程式使用。
回到頂部
第九章
- 繼承的目的:複用已有的軟體。
- protected 修飾符用於繼承。各個可見性修飾符的可見性(當前同一個類中是否可以使用?同一個包內是否可以使用?子孫類是否可以使用?),如下圖。
- super() 引用:因為構造方法不能被繼承,所以得用super()來呼叫父類的構造方法。super也可以用來呼叫父類的各個成員。子類的構造方法負責呼叫父類的構造方法。一般情況下,子類的構造方法的第一行
- 繼承只能有一個父類,介面允許多繼承。
- 所有的類都直接或間接的派生與Object類。所以,每個類都繼承了toString 和 equals 方法。
- 抽象類不能例項化,它定義的抽象方法有該抽象類的子類來實現: 實現“父親”的夙願,要不然你就不是我兒子。。。。UML類圖中,抽象類是斜體。
- 抽象方法宣告為static型別會出現矛盾:靜態方法在還沒有宣告類的物件的時候就能通過類名來呼叫,但是抽象方法如果你不在子類中實現的話,就無法呼叫呀(抽象類的抽象方法是沒有函式體的,所以一定要實現了才能去呼叫,所以不能用static修飾)。
教材學習中的問題和解決過程
有點不是太能理解:用super類呼叫父類的構造方法這一行為。基於我現在的理解,我的看法就像剛剛上面說到的:在子類中去呼叫父類的構造方法,這樣子類便可以有父類的成員變量了,所以子類不用再重複的宣告和例項化對應的成員變數。 滿足DRY(Don't Repeat Yourself.s)原則
回到頂部
程式碼除錯中的問題和解決過程
問題一:語法錯誤。編寫類的時候,不需要有像函式那樣的形參括號。
問題二:程式設計時犯了邏輯錯誤,出現了死迴圈。現象:程式進行到最後的時候就是卡死在某個地方,就是好像Died了。
問題三:使用IDEA除錯時,對toString()方法進行除錯時,不能STEP INTO 進到toString()方法中
解決方法:如圖改設定。
問題四:使用IDEA,執行時java XXXXX 輸入命令列引數args
問題五:JAVA中預設的浮點數型別是double。所以,在使用float型別時,要明顯的“說”出來,否則JAVA就認為你輸入的小數是double型的。
問題六:關於vim-plug的外掛的修改設定。
回到頂部
本週程式碼託管截圖
其他(感悟、思考等,可選)
好好學,不急,堅持下去。像vim,從最開始的不願意接受,到現在的有點意思。要堅持下去。所以,我認為學習的方式就是這樣:最開始學一個東西的時候就是死活覺得它難,死活覺得它枯燥。但是隻要挺過了那個階段,後面學起來就會稍微輕鬆一些,就是一個堅持的問題了。怎麼挺過去那個階段呢?我現在的看法是:一開始不要去就想做到有老師帶的那種程度,畢竟你是自學,所以你的目標就是以最快的方式去把它那整個流程走下來,把大體的學習框架和流程弄清,接下來就是不斷的花時間,最多兩週,就可以達到有老師帶的那種程度了。
回到頂部
學習進度條
程式碼行數(新增/累積) | 部落格量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一次 | ||||
第二次 | 弄清了物件在記憶體中的存放 | |||
第三次 | ||||
第四次 | 684/704 | 1/5 | 通過除錯,知道了例項化過程是怎樣的 | |
第五次 | 678/1120 | 1/6 |
參考資料
- Java程式設計 第八版
- Java2實用教程
- java程式設計與資料結構教程 第二版