201521123111《Java程序設計》第3周學習總結


1. 本章學習總結

你對於本章知識的學習總結

2. 書面作業

1. 代碼閱讀
代碼閱讀

public class Test1 {
    private int i = 1;//這行不能修改
    private static int j = 2;

    public static void main(String[] args) {
        geti();
        Test1getj();
    }

    public static void geti() {
        System.out.println(i);
    }

    public static void getj() {
        System.out.println(j);
    }

}
  • 以上代碼可否編譯通過?哪里會出錯?為什么?嘗試改正?
  • 如果創建3個Test1對象,有內存中有幾個i,幾個j?
    Answer:編譯沒辦法通過,System.out.println(i);會出錯。因為靜態方法不能調用一個非靜態的成員變量,get是靜態調用不能調用未經static修飾的變量。

    修改前代碼:

    修改后代碼:

    如果創建3個Test1對象,內存中會有1個i,1個j;j被static修飾后,在編譯時由內存分配一塊內存空間,該類的所有對象都會共享這塊內存空間;i同理可證。
    2.構造函數有什么用?其編寫格式是什么?如果一個類不寫構造函數,它有構造函數嗎?如果一個類中只有帶參的構造函數,它有沒有不帶參數的默認構造函數?
    Answer:在定義類時,可以使用構造函數定義對象建立的初始流程。構造函數是與類名稱同名,無需聲明返回類型的方法,可以避免重復流程出現一般格式為pubic類名(){}。如果一個類不寫構造函數,系統會自動加入一個無參數的內容為空的函數;如果你創造了一個帶有參數的構造方法,那么無參的構造方法必須顯式的寫出來,否則會編譯失敗。
    3.使用java.lang.Math類的函數時,為什么不需要new?如果new Math()會產生什么錯誤?
    Answer:Math類所有的成員變量以及成員方法都是靜態的,靜態修飾的都可以直接用類名去調用而不需要用new;如果new Math()會提示這個構造函數不可見也就是不可以的意思。
    4.什么是重載?什么是構造函數重載?在java.lang.Math類中舉出函數重載的例子?怎么才能區分兩個重載函數?
    Answer:在Java 中,同一個類中的2個或2個以上的方法可以有同一個名字,只要它們的參數聲明不同即可。在這種情況下,該方法就被稱為重載(overloaded ),這個過程稱為方法重載(method overloading );構造函數重載是指當構造函數沒有構造方法時,系統會自動加上沒有參數的構造函數;
    java.lang.Math中的例子:

    通過函數返回值和參數類型可以區分兩個重載函數。
    5.final修飾的變量不能改變,為什么如下代碼可以正常運行?
    final int[] NUMBS= {1,2,3,4,5}; NUMBS[2] = 1;
    Answer:對於基本類型final使數值恆定不變;而用於對象引用,final使引用恆定不變。所以NUMBS這個對象不能再被修改指向新的對象。但它所指向的對象本身的值是可以修改的。
    6.閱讀代碼EmployeeTest.java
    回答:
    為什么其屬性均為private?這樣設計有什么好處?
    Answer:使用private定義私有屬性是希望用戶不能隨意操作私有數據,讓用戶無法直接存取,而必須通過提供的方法進行才能存取私有數據。增加了安全性隱私性。
    Employee類增加一個無參構造函數,調用其有參構造函數,設置name為雇員1, salary為3000, hireDay的年月日為2017年3月5日。(粘貼代碼)

    Employee類再增加一個有參構造函數,參數只有name與salary,hideDay為當前日期。(粘貼代碼)

    7.編寫函數public static boolean isMondayToFriday()
    功能:判斷今天如果是周一到周五,直接輸出如“上班時間”並返回true,否則輸出“休息時間”。
    提示:使用LocalDateTime, DayOfWeek
    參考資料:
    JAVA 8:健壯、易用的時間-日期API - ImportNew.pdf
    Java8DateTimeTest.java

3.本周Commit歷史截圖

在碼雲的項目中,依次選擇“統計-Commits歷史-設置時間段”,然后搜索並截圖,如下圖所示

4.PTA實驗總結

題目集:jmu-Java-03-面向對象1-基礎-封裝繼承 中的編程(5-1, 5-2, 5-3)
一定要有實驗總結.
任何編程題目對我來說都好難好難,基礎好差好差,一步步來吧... 這周學會了在eclipse中快速的進行編寫set和get,點擊Source –> Generate Getters and Setters自動生成Getter和Setter方法;函數用static修飾的時候可以使用類名,其他時候不可以。


免責聲明!

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



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