1. 程式人生 > >20165202 第3周學習總結

20165202 第3周學習總結

top use AC util obj eight 字節 rep 倉庫

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

教材學習內容總結

Ch4

  • 面向機器語言、面向過程語言、面向對象語言
  • 類:“駝峰習慣”、類體的定義、成員變量、方法
  • 構造方法與對象的創建:構造方法沒有類型、使用對象
  • 類與程序基本結構
  • 參數傳值:引用類型傳值中傳遞的是變量中存放的“引用”、可變參數
  • 對象的組合:復用方法
  • 實例成員與類成員:實例變量與類變量、實例方法與類方法的區別 是否有“static”修飾
  • 方法重載:一個類中可以有多個方法具有相同的名字,但參數必須不同
  • this關鍵字:在構造方法、實例方法中的使用
  • 包:有包名的類的存儲目錄、運行有包名的主類
  • import語句:引用庫中的類、自定義包中的類
  • 訪問權限:對象是否可以通過“.”運算符操作變量或調用類中方法
  • [ ] rivate:可修飾變量或者方法(不能修飾類)
  • [ ] public:可修飾變量或者方法(可以修飾類),可通過對象或者類名訪問
  • [ ] protected:可修飾變量和方法(不能修飾類),在同一包內可通過對象和類名訪問。
  • [ ] 友好變量/友好方法:不用public、private、protected修飾的變量

  • 基本類型的類封裝
  • 對象數組:數組的元素是對象
  • JRE擴展與jar文件

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

  • 問題1:import語句使用不太懂
  • 問題1解決方案:通過對教材代碼的深入理解,我發現import主要分為引入類庫中的類和引入自定義包中的類

import java.util.類名為引入類庫中的類的基本格式,一般寫在較靠前位置。
package 主類包名; import sohu.com.自定義包中的類名;
編譯和運行的方式有所區別
\ch4>javac hello\nihao\Example4_8,java \ch4>java hello.nihao.Example4_8

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

  • 問題1:vim編輯器無行數顯示、換行自動空格等功能,效率較低
  • 問題1解決方案:我百度了一下,參考如何設置vim自動對齊為vim添加部分功能,好用多了。
    代碼如下

    cd /  //返回最上層目錄//
    cd etc
    cd vim
    ls   //顯示所有文件//
    sudo gedit vimrc   //使用gedit編輯文件(只輸入gedit權限不夠)//

技術分享圖片

打開之後,我們在文件最下面進行修改,將相應的指令添加到文件末尾;

【顯示行號】--->【set number】;

【檢測文件的類型】--->【filetype on】;

【自動對齊】--->【set autoindent】

【智能選擇對齊方式】--->【set smartindent】

【設置Tab鍵為4個空格】--->【set tabstop=4】

【設置當行之間交錯時使用4個空格】--->【set shiftwidth=4】

【設置匹配模式】--->【set showmatch】;

設置完後,點擊save按鈕,進行保存。重啟ubuntu即可使用。

  • 問題2:4_3編譯提示不兼容的類型

技術分享圖片

  • 問題2解決方案:錯將zhubajie.head中head輸入為height,head被定義為String型變量,提醒了我一定要註意變量所定義的類型,不同類型間轉換可能造成精度損失。
  • 問題3:4_5運行編譯提示找不到符號

技術分享圖片

  • 問題3解決方案:
    將Rect、Lader、Example4_5放在同一目錄下,使用javac *.java編譯目錄下全部源文件,問題原因在於4_5的編譯需要Rect、Lader產生的字節碼文件,必須將Rect.class、Lader.class與4_5.java放在同一目錄中。
  • 問題4:4_9編譯顯示方法聲明無效:需要返回類型

技術分享圖片

  • 問題4解決方案:SIM.java中錯將類名寫為class STM提醒了我在輸入代碼時註意相近字符,防止弄混。
  • 問題5:4_18編譯顯示找不到或無法加載主類

技術分享圖片

  • 問題5解決方案:通過檢查代碼,發現包名hello誤輸入為hell,主類包名錯誤導致無法加載。
  • 問題6:使用git commit -m "註釋"過程中提示error: insufficient permission for adding an object to repository database ./objects錯誤

技術分享圖片

  • 問題6解決方案:參考git pull 報錯

使用sudo chmod 777 -R .git/objects命令添加權限後commit可正常使用

技術分享圖片

但在隨後運行腳本statistics.sh時出現另外一個問題:無法顯示最近的commit操作內容

技術分享圖片

參考 三分鐘教你學Git(二十四) error: insufficient permission
在git創建倉庫目錄20165202jhs下使用sudo chown -R current_user .git/objects修改權限為當前用戶可寫後,該目錄下腳本運行正常。

技術分享圖片

但根目錄下仍顯示權限問題,所以本問題有待繼續求教老師同學。

代碼托管

技術分享圖片

上周考試錯題總結

本周未進行考試

感悟

本周的教材代碼量明顯上升,week2的內容很多還是C語言的基礎,而這周開始的教材內容多了很多新知識,需要更多的實踐去理解學習。這周自己增加了vim的幾個小功能,使編譯工具更加方便順手,還是很開心的。在代碼問題6的求解過程中慢慢對git和linux的一些命令有了更多的認識。兩周過後起碼從最初上手的一頭霧水,到現在可以去借助網絡不斷解決問題。最近的一些錯誤更加提醒我要註意編輯代碼時的準確性,一些出在語法上的編譯問題都是可以盡量避免的。同時,還是要盡量科學地分配敲代碼的時間,把平時時間分配出來分塊練習,不能等周末兩天突擊。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積)
目標 5000行 30篇 400小時
第一周 24/24 1/4 15/15
第二周 423/423 2/6 14/29
第三周 702/1109 1/7 16/45

20165202 第3周學習總結