學號 2017-2018-20172309 《程序設計與數據結構》第4周學習總結

學號 2017-2018-20172309 《程序設計與數據結構》第4周學習總結

教材學習內容總結

第四章:

  • 瞭解到類與對象: 類是對象的藍圖,表明了對象的概念.好比學生是一個類,而咱們每個學生就是對象、貓是一種動物,而每一隻貓都是一個個體。
  • 學會了怎樣建立一個類,而且每個類都包含了數據聲明與方法聲明。
  • 瞭解到了可見性修飾符在方法和數據上的效果。它們分爲public和private,public能夠從該對象的外部直接使用,而private只能從類的內部訪問,不能從外部訪問。此外,常量能夠用public,由於他是一個 固定值即被final修飾,不會被外界改變。
  • UML類圖有助於描述程序的類結構與類間的關係。它由類名、屬性(數據)、操做(方法)構成。
  • 瞭解到了類中的方法順序:可選的修飾符、返回值類型、指定方法名的標識符、參數列表和方法體。
  • 被調方法和調用方法可能不在一個類中,那麼須要另外一個類的對象名來調用方法
  • 方法的返回值類型必須與方法聲明首部中固定的返回值類型一致。
  • 參數分爲形式參數和實際參數**。例如:html

    public setFacevalue(數據類型 形式參數)
        facevalue=形式參數~~即實際參數~~
  • 構造方法與常規方法相似,它是輔助類的實例。經常使用於初始化與每一個對象有關的變量。除此以外,得注意:java

    1. 構造方法名與類名相同。
      2.構造方法不能有返回值,所以方法聲明首部沒有返回值類型。

第七章

  • 瞭解到軟件開發分爲:肯定軟件需求、軟件設計、實現軟件設計、和軟件測試四個方面。現實生活中,它們不是按順序一次性的完成。它們是相互摺疊和交互的。
  • 瞭解到了靜態變量與靜態方法。靜態變量由類的全部實例共享靜態方法能夠經過類名稱來調用,使用時不用實例化對象
  • 本章學習的類間關係有依賴關係聚合關係
  • 瞭解到了接口(常量和抽象方法的集合),抽象方法是沒有實現的方法,即沒有代碼體。接口不能被實例化。

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

  • 問題1:類與對象有什麼不一樣?(對類就是對象的藍圖的理解
  • 問題1解決方案:git

    1. 類是一個抽象的概念,它不存在於現實中的時間/空間裏,類只是爲全部的對象定義了抽象的屬性與行爲。就好像「Person(人)」這個類,它雖然能夠包含不少個   體,但它自己不存在於現實世界上。
    2. 對象是類的一個具體。它是一個實實在在存在的東西。
    3. 類是一個靜態的概念,類自己不攜帶任何數據。當沒有爲類建立任何對象時,類自己不存在於內存空間中。
    4.對象是一個動態的概念。每個對象都存在着有別於其它對象的屬於本身的獨特的屬性和行爲。對象的屬性能夠隨着它本身的行爲而發生改變。
  • 問題2:返回值何時用?
  • 問題2解決方案:小程序

  • 問題3:變量的做用域是個什麼鬼?
  • 問題3解決方案:變量分爲全局變量和局部變量。它們的做用域不一樣。vim

    1. 全局變量:在類裏定義(非方法裏)的變量,那麼在這個類中均可以使用。
    2. 局部變量:在方法中定義的變量,這個變量一旦出了這個方法,就不能用了。
  • 問題4:static靜態標識符應該何時用?
  • 問題4解決方案:
  • 問題5:當使用非靜態方法時,必須調用該類的實例對象調用,而不能用類名調用。問:如何使用實例對象調用?
  • 問題5解決方案:首先用new運算符建立一個對象,而後使用 對象.方法名()運用。
  • 問題7:如何將一個對象做爲方法的參數傳遞給另外一個對象?
  • 問題7解決方案:數據結構

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

  • 問題1:在vim編輯器中寫完代碼後,不能推出!!(包括強制退出也不行)
  • 問題1解決方案:app

  1. 不過不行的話首先複製代碼到記事本關掉vim 同時刪除上次建立的文件用命令rm。以後從新作,不過複製就行。
  • 問題2:出現非法字符,
  • 問題2解決方案:通常這種狀況就是使用了中文符號,最有可能就是那些跟英文中同種長的很像的。只要仔細就好。
  • 問題3:不兼容的類型,之外的返回值。
  • 問題3解決方案:方法的返回值類型必須與方法首部中規定的返回值類型一致。當方法不返回任何值時,用void做爲返回值類型,此時就不須要返回語句。less

  • 問題4:怎麼把一個double數據類型輸出成字符串?
  • 問題4解決方案:將double數據類型變成String型編輯器

  • 問題5:
    -問題5解決方案:對此類問題總結,分爲三種:ide

    1.環境變量沒有設置:JAVA_HOME、CLASSPATH、PATH,都須要指向JDK相關的目錄,其中的JAVA_HOME指向安裝根目錄,CLASSPATH指向lib目錄,path指向bin目錄;
    2.輸入的JAVA源文件沒有帶文件名後綴java;
    3.輸入的JAVA源文件的名字與真實源文件不一致,須要注意的是大小寫也必須一致。

  • 問題6:如圖所示,返回語句中的+「」做用是什麼?
  • 問題6解決方案:在本語句中,value 的數據類型爲 int 型,運用 +「」 能將其轉變爲字符型。
  • 問題7: 在使用Comparable 接口時,出現如圖狀況:
  • 問題7解決方案:出現這種狀況是由於運用compareTo方法時:r1.compareTo(5/3); 其中若是想用數字5/3就得封裝!!

    RationalNumber  num1;
     RationalNumber     num2=5/3;
     num1 =  num2;

代碼託管


上週考試錯題總結

  • 錯題1及緣由,理解狀況:
    If two variables contain aliases of the same object then
    A . the object may be modified using either alias
    B . the object cannot be modified unless there's but a single reference to it
    C . a third alias is created if/when the object is modified
    D . the object will become an "orphan" if both variables are set to null
    E . answers A and D are correct

    正確答案:E 個人答案:A
    錯誤緣由:選項沒有看完,致使沒有選D。

  • 錯題2及緣由,理解狀況
    What happens if you attempt to use a variable before it has been initialized?
    A . A syntax error may be generated by the compiler
    B . A runtime error may occur during execution
    C . A "garbage" or "uninitialized" value will be used in the computation
    D . A value of zero is used if a variable has not been initialized
    E . Answers A and B are correct

    正確答案: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
    錯誤緣由:在課本上只看到了C的相關語句,因此直接選了C

  • 錯題4及緣由,理解狀況:
    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  個人答案:B
      錯誤分析:覺得S1是錯誤的語法,後來才發現沒有問題。回去後直接試了下發現它們都是對的。

  • 錯題5及緣由,理解狀況:
    The String class' compareTo method
    A . compares two string in a case-independent manner
    B . yields true or false
    C . yields 0 if the two strings are identical
    D . returns 1 if the first string comes lexically before the second string
    E . none of the above

     正確答案:C   個人答案:D 
    錯誤分析:沒有正確理解題目的意思,個人理解爲:「class」與「method」相比。題目的意思爲:「使用String類char compareTo()方法的輸出。輸出規則是:按照字典順序+0-分別表示先於、等於、後於STr字符串。

其餘(感悟、思考等,可選)

這章比起前面幾章難了很多,不少都一開始的時候都不能理解。在看例子的時候須要很是認真,時常須要問本身它爲何這麼作?不過學會或者是打出本身的一個小程序時,心中仍是特別高興的。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 075/000 1/1 05/20
第二週 485/560 1/2 13/38
第三週 412/987 1/4 21/60
第四周 679/1666 1/5 21/90

參考文獻

1.Java語言中的錯誤
2.Java中的類與對象的區分
3.將double型變成String型
4.vim中的複製與粘貼
5.IDEA快捷鍵

相關文章
相關標籤/搜索