1. 程式人生 > >劉誌梅201771010115.《面向對象程序設計(java)》第四周學習總結

劉誌梅201771010115.《面向對象程序設計(java)》第四周學習總結

方法名 ann man pack 初始化 alt 自定義 src 寫入

實驗四 類與對象的定義及使用

實驗時間 2018-9-20

1、實驗目的

(1)預定義類:(不是所有類都具有面向對象特征)

構造器的類名和方法名相同,是一種特殊的方法,用來構造並初始化對象。

2)用戶自定義類:(各種主力類,沒有main方法,卻有實例域和實例方法)

(3) 靜態域:將域定義為static,每個類中只有一個這樣的域,每一個對象對於所有的實例域都有一份拷貝)

靜態常量:在程序中可以采用Math.PI的形式獲得這個常量(多次使用的靜態常量System.out)

(4) 對象構造

重載:如果多個方法有相同的名字、不同的參數,便產生了重載;

重載解析:編譯器找不到匹配的參數,就會產生編譯時錯誤,因為根本不存在匹配,或者沒有一個比其它更好的過程稱作重載解析。

顯示域初始化:通過重載類的構造器方法,可以采用多種形式設置類的實例域的初始狀態,確保不管怎樣調用構造器,每個實例域都可以被設置為一個有意義的初值。

(5)Java允許使用包將類組織起來;借助包可以方便地組織自己的代碼,並將自己的代碼與別人提供的代碼庫分開管理,而且使用包可以確定類名的唯一性。

2、實驗內容和步驟

實驗1 測試以下程序,掌握文件輸入輸出程序設計技術(文件輸入輸出,教材61-62).

import java.io.*;

import java.util.*;

public class FileWriteReadTest {

public static void main(String[] args) throws IOException{

//寫入文件演示

PrintWriter out = new PrintWriter("myfile.txt");

out.println("姓名 高數 Java 數據結構 平均成績 總成績");

out.println("張三 20 30 40 0 0");

out.println("李四 50 60 70 0 0");

out.close();//輸出完畢,需要close

//讀入文件演示

Scanner in = new Scanner(new File("myfile.txt"));//myfile.txt這個File創建一個掃描器in

int number = 1;//行號

System.out.println(in.nextLine());

while(in.hasNextLine()){//判斷掃描器是否還有下一行未讀取,該循環把文件的每一行都讀出

String line = in.nextLine();//讀出myfile.txt的下一行

System.out.print(""+(++number)+"行的內容: ");

Scanner linescanner = new Scanner(line);//行內容建立掃描器

linescanner.useDelimiter(" ");//使用空格作為分隔符

String name = linescanner.next();

String math = linescanner.next();

String java = linescanner.next();

String ds = linescanner.next();

String avg = linescanner.next();

String total = linescanner.next();

System.out.println("name="+name+" math="+math+" java="+java+" ds="+ds+" avg"+avg+" total="+total);

}

in.close();//讀入完畢,最後需要對其進行close

}

}

技術分享圖片

實驗2 導入第4章示例程序並測試。

測試程序1

l 編輯、編譯、調試運行程序4-2(教材104頁);

l 結合程序運行結果,掌握類的定義與類對象的用法,並在程序代碼中添加類與對象知識應用的註釋;

l 嘗試在項目中編輯兩個類文件(Employee.java EmployeeTest.java ),編譯並運行程序。

l 參考教材104EmployeeTest.java,設計StudentTest.java,定義Student類,包含name(姓名)、sex(性別)、javascorejava成績)三個字段,編寫程序,從鍵盤輸入學生人數,輸入學生信息,並按以下表頭輸出學生信息表:

姓名 性別 java成績

技術分享圖片

修改後結果:

技術分享圖片

測試程序2

l 編輯、編譯、調試運行程序4-3(教材116);

l 結合程序運行結果,理解程序代碼,掌握靜態域(netxtId)與靜態方法(getNextId)的用法,在相關代碼後添加註釋;

l 理解Java單元(類)測試的技巧。

運行結果:

技術分享圖片

測試程序3

l 編輯、編譯、調試運行程序4-4(教材121);

l 結合程序運行結果,理解程序代碼,掌握掌握Java方法參數的用法,在相關代碼後添加註釋;

運行結果:

技術分享圖片

測試程序4

l 編輯、編譯、調試運行程序4-5(教材129);

結合程序運行結果,理解程序代碼,掌握Java用戶自定義類的用法,掌握對象構造方法及對象使用方法,在相關代碼後添加註釋。

運行結果:

技術分享圖片

測試程序5

l 編輯、編譯、調試運行程序4-64-7(教材135);

l 結合程序運行結果,理解程序代碼,掌握Java包的定義及用法,在相關代碼後添加註釋;

運行結果:

技術分享圖片

技術分享圖片

實驗3 編寫長方形類Rectangle與圓形類Circle,其中Rectangle類設置私有屬性:width,length;Circle類設置私有屬性radius。編寫Rectangle類的帶參構造函數Rectangle(int width,int length), Circle類的帶參構造函數Circle(int radius),編寫兩個類的toString方法(Eclipse可自動生成)。上述2個類均定義以下方法

求周長的方法public int getPerimeter()

求面積的方法public int getArea()

main方法中完成以下任務:

(1) 輸入1行長與寬,創建一個Rectangle對象;

(2) 輸入1行半徑,創建一個Circle對象;

(3) 將兩個對象的周長加總輸出,將兩個對象的面積加總輸出。

技術分享圖片

實驗總結:通過本次實驗,理解用戶自定義、預定義類,掌握對象的聲明;區別掌握import與package不同;完成作業過程中,寫代碼的困難較大,需要更多的學習。

劉誌梅201771010115.《面向對象程序設計(java)》第四周學習總結