20145218 《Java程序設計》第三周學習總結


20145218 《Java程序設計》第三周學習總結

教材學習內容總結

定義類

編寫程序要產生對象就要先定義類。類是對象的設計圖,對象是類的實例。類定義時使用class關鍵詞,建立實例時,要使用new關鍵詞。
代碼如下:

運行結果如下:

在Field.java中,存在公開的Field類(即存在public class Field語句),所以文檔名稱必須是Field,而當我保存文件起名為Clothes時,編譯就會出現錯誤。

使用標准類

  • 兩個標准類:java.util.Scanner和java.math.BigDecimal
  • java.util.Scanner
    之前編寫的程序都是直接輸出結果,沒辦法接受輸入,C語言中只要有scanf便可接受用戶輸入,在java中,當通過new Scanner(System.in)創建一個Scanner,控制台會一直等待輸入,直到敲回車鍵結束,把所輸入的內容傳給Scanner,作為掃描對象。先編寫一個簡單地判斷奇偶數的程序。
    代碼如下:

運行結果如下:

  • java.math.BigDecimal
    0.1+0.1+0.1在Java的運算中並不等於0.3
    代碼如下:

運行結果如下:

這是因為Java遵守IEEE754浮點數運算,簡而言之,在Java中編寫程序進行浮點數運算多多少少會產生誤差。而使用java.math.BigDecimal則可以產生更好的精度。
代碼如下:

運行結果如下:

數組的基本學習

  • 數組打印:數組就像是一個有很多小隔間的容器,每個小隔間可以放入一個元素,例如在數組中存入六個數字,並打印出來
    代碼如下:

運行結果如下:

  • 數組排序:數組的常見使用方法就是獲取最值和排序,其實二者差別不是很大,都是對數組內每一個小隔間的元素進行判斷及重排序。排序要比獲取最值復雜一點,排序的代碼如下
    代碼如下:

運行結果如下:

圖中排序方法為冒泡排序法。

操作數組對象

如果事先不知道數組中的元素值,只知道元素個數,則可以通過new關鍵詞指定長度來建立數組(例如:int[] scores=new int[10];)。此時數組初始值均為0,若要改變初始值,則可使用java.util.Arrays的fill()方法來設定新建數組的元素值。
代碼如下:

運行結果如下:

數組復制

數組復制的基本做法是另行建立新數組。但可以使用arrays.copyOf()方法。System.arraycopy()的五個參數分別是來源數組、來源起始索引、目的數組、目的起始索引、復制長度。
代碼如下:

運行結果如下:

字符串對象

字符串是由字符組成的文字符號。在java中,字符串是java.lang.String實例,用來打包字符數組。例如:
String name="justin"; //建立String實例
System.out.println(name); //顯示justin
System.out.println(name.length()); //顯示長度為6
System.out.println(name.charAt(0)); //顯示第一個字符j
System.out.println(name.toUpperCase()); //顯示JUSTIN

  • 練習讓用戶輸入整數,輸入0后計算所有整數總和
    代碼如下:

運行結果如下:

封裝

  • 封裝可以理解為把方法封在類中,用打時候可以直接拿,就好比你要上學,類就是書包而方法就是書,要用方法打時候直接從書包中拿書就行。
    代碼如下:

類語法細節

  • public權限修飾
    public是個公開類,可以在其他包的類中使用。可以在構造函數上聲明public,這表示其他包中的類可以直接調用這個構造函數。可以在方法上聲明public,這表示其他包中的方法可以直接調用這個方法。
  • 關於構造函數
    函數名與類名相同,不用定義返回值類型,不可以寫return語句。
  • 重載
    (1)重載的概念:在同一個類中,允許存在一個以上的同名函數,只要他們的參數個數或者參數類型不同即可。
    (2)重載的特點:與返回值類型無關,只看參數列表。
    (3)重載的好處:方便於閱讀,優化了程序設計。
    方法重載代碼如下:

運行結果如下:

若想讓上面的程序結果顯示為“Integer被調用”則代碼修改如下:

運行結果如下:

使用this

除了被聲明為static的地方外,this關鍵字可以出現在類中任何地方。在構建函數參數與對象數據成員同名時,可用this加以區別。
代碼如下:

運行結果如下:

static類成員

  • 被聲明為static的成員,不會讓個別對象擁有,而是屬於類,是將類名稱作為名稱空間。
  • 由於static成員是屬於類,而非個別對象,所以在static成員中使用this,會是一種語意上的錯誤。
  • 靜態變量必須在初始化之前進行賦值,否則會報錯。靜態方法通常都是被經常使用的方法,不需要每次都重新實例化,提高工作效率。
    import static語法代碼如下:

運行結果如下:

不定長度自變量

  • 要使用不定長度自變量,聲明參數列時要在類型關鍵字后加上...。

內部類

  • 可以在類中再定義類。

  • 內部類也可以使用public、protected或private聲明。例如:
    class Some{
    private class Other{

    }
    }

代碼托管

代碼托管可以更直觀的反應我們所寫的代碼。

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

課本上的代碼敲上去之后卻運行不了,出現了上圖中的錯誤。

感悟

與前兩周輕松的學習不同,第三周的任務量與難度同時加大了,出現了很多以前從未接觸過的名詞及定義。但通過對第四章第五章的學習,我對java的認識更深了一層,原來沒有自己想象中的那么簡單,有的代碼明明和書上的一模一樣,到了自己的電腦上卻無法運行,而且出現了問題也不知道怎么去解決,希望通過以后的學習可以慢慢提高自己的水平,遇到問題不再慌張,也試着自己去解決。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一周 200/200 2/2 20/20
第二周 300/500 1/3 18/40
第三周 400/1000 1/4 25/60

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM