20165322 第三周學習總結
阿新 • • 發佈:2018-03-19
結果 正在 所在 系統 執行 創建對象 對象 釋放 保存
知識點總結
類
- 類的概念:類是用來創建對象的模板,包含被創建對象的狀態描述和行為的定義。
- 類的目的:抽象出一類事物共有的屬性(數據)和行為(操作)
類的組成:
class 類名{ 類體的內容 }
- 類體:變量聲明+方法定義。
- 成員變量:其類型可以是java中的任何一種數據類型。
- 方法
- 方法返回的數據類型可以是java中的任何一種數據類型。
- 方法是void型時,該方法不需要返回數據。
- 方法的參數可以是java中的任何一種數據類型。
- 成員變量與局部變量
- 若成員變量與局部變量名字相同,則隱藏成員變量。若想用成員變量,使用關鍵字
this.名稱
- 成員變量有默認值,局部變量沒有。使用前必須賦值。
- UML圖:P57
- 類的構造方法
- 構造方法的名字必須與它所在的類的名字完全相同。
- 構造方法沒有類型。
若未編寫構造方法。系統會默認該類只有一個沒有參數的構造方法。且方法體中無語句。
類與對象
- 創建對象
- 聲明對象:
類的名字 對象名字
- 為對象分配變量:
對象 = new 構造方法
- 使用對象
- 對象.變量(實體)
- 對象.方法
- 不同匿名對象也可以訪問自己的變量(weight等)P63
- 註意重點:
- 避免使用空對象
- 一個類聲明的引用相同的兩個對象,具有完全相同的實體。
- 一個類創建的兩個對象具有不同的引用。
- 某個變量如過不再被任何對象所引用,立即被釋放實體所占內存。立刻執行,讓System類調用gc()方法。
- 參數傳值
- 基本數據類型的參數,向該參數傳遞的值的級別不可高於該參數的級別。可以向double型參數傳遞一個float值。
- 引用類型參數的傳值:如果改變參數變量所引用的實體,就會導致原變量的實體同樣發生改變。引用型變量將引用傳值給參數,他們指向同一實體。
- 可變參數:在聲明方法時不給出參數列表中從某項開始直到最後一項的名字和個數,但參數的類型必須相同。
- 類變量與實例變量
- 聲明:static修飾的為類變量,否則為實例變量。
- 實例變量與相應的對象相關聯,類變量和類相關聯
- 類方法與實例方法
- 分配入口地址:實例方法在該類創建對象後;類方法在該類被加載到內存時
- 調用:實例方法通過對象調用,類方法可以通過類名或對象調用
- 操作:實例方法可操作實例變量和類變量;類方法只能操作類變量。
- 方法重載
- 重載:一個類中可以有多個方法具有相同的名字,但這些方法的參數必須不同。
- this關鍵字:表示某個對象,代表使用該構造方法所創建的對象。
- this關鍵字出現在實例方法中時,this就代表正在調用該方法的當前對象。
- 包
- 包語句:
package 包名
包名可由若幹個“.”分隔而成。 - 運行包:java 包名 主類名
- import語句
- 可以有多個import語句,他們必須在package語句和源文件中的類的定義之間
- 訪問權限
- 私有變量:用private修飾的成員變量
- 共有變量:用public修飾的成員變量
- public >protected >友好的 >private
- 基本類型的類封裝
- 存在java.lang包中 P95
JDB調試
- 可以用
Ctrl+Shift+T
快捷打開三個標簽,用tab1、tab2等切窗口 - 窗口1:編輯代碼vim,按w保存不退出
- 窗口2:編譯用參數
-g
調試 - 窗口3:jdb -classpath 地址 類名
- 調試:
- stop in設置方法斷點,stop at設置斷點
stop in HelloJdb.main
- 鍵入
run
命令運行程序 - 用
step
運行下一行代碼 - 用
local
查看命令結果 - 用
print
查看變量的值 - 用
list
查看源代碼運行到的位置,由於.class和.java不在同一目錄下,我們要使用use指出源代碼位置 - 循環體可以用
stop at HelloJDB:12
在12行設置斷點,然後運行cout
將循環運行完 - 用
clear
查看設置斷點的情況 - 用
exit
退出JDB
本周學習問題及解決
- 在編譯運行Example17和18時顯示找不到文件,(忘了截圖了。。)後來知道要將兩個包裏的兩個類公用必須將它們放在同一個目錄下編譯運行
- 在JDB調試時出現以下問題
查看tree後發現是路徑選錯的問題,另外,在JDB中不能用-cp,而要用-classpath來進入路徑
腳本運行截圖
碼雲鏈接:https://gitee.com/BESTI-IS-JAVA-2018/20165322wyj
20165322 第三周學習總結