Java實驗報告
實驗一 Java開發環境與簡單Java程式
一、 實驗目的
(1) 熟悉JDK開發環境
(2) 熟練掌握結構化程式設計方法
二、 實驗内容
1. 列印輸出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其中各位數字立方和等于該數本身。例如,153是一個“水仙花數”。
2. 編寫Java程式,求13-23+33-43+…+973-983+993-1003的值。
3. 程式設計求1!+2!+3!+…+20!。
4. 編寫Java程式,計算8+88+888+…前10項之和。
5. 一個數如果恰好等于它的因子之和,這個數就稱為完數。編寫程式輸出1000以内的所有完數。
6. 編寫應用程式,輸出滿足1+2+3+…+n<8888的最大正整數。
7. 使用for循環列印下面的圖形。
三、實驗過程
1. 列印輸出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其中各位數字立方和等于該數本身。例如,153是一個“水仙花數”。
實驗源碼:
實驗結果:
153
370
371
407
2. 編寫Java程式,求13-23+33-43+…+973-983+993-1003的值。
實驗源碼:
實驗結果:-500
3.程式設計求1!+2!+3!+…+20!。
實驗源碼:
實驗結果:4037913
4.編寫Java程式,計算8+88+888+…前10項之和。
實驗源碼:
實驗結果:
1286608608
5. 一個數如果恰好等于它的因子之和,這個數就稱為完數。編寫程式輸出1000以内的所有完數。
實驗源碼:
實驗結果:
6
28
496
6. 編寫應用程式,輸出滿足1+2+3+…+n<8888的最大正整數。
實驗源碼:
實驗結果:
132
7. 使用for循環列印下面的圖形。
四、 實驗總結:
覺得還是要多練題,增加自己的邏輯,解決相關問題。
總結報告:
一:類的定義:基本方式;public static 傳回值類型 方法名(參數類型 參數名稱,.......){方法體; return 傳回值;}
方法的三種調用方式;注意:void 隻能用于單獨調用;要有一個更重要的地方!!!在學習類的定義的時候,定義成員方法的時候與基本方法不同,成員方法他不需要static關鍵字,這個要注意!
熟悉代碼!!! 這裡說明一下什麼時候用什麼時候不用static關鍵字:在定義成員方法時不用,即因為此時定義的方法将要由對象調用,而不像之前那樣與主方法一起定義在一個類當中且由主方法直接調用。
二:寫一下建立對象中多個對象的使用-對象引用傳遞:
1-per2沒有開辟堆記憶體空間-per2=per1->将per1的堆記憶體空間使用權給per2;每個棧記憶體空間都可以修改堆記憶體的内容。
2-per2也開辟了堆記憶體空間-per2=per1-> 因為per2本身就有堆記憶體空間的指向,是以如何在想指向per1對應的空間,則必須先斷開已有連接配接。是以原有的堆空間中沒有棧空間所指向,就形成了空間垃圾,等待Java垃圾收集機制進行回收。而此時per2同樣可以對per1中的堆記憶體資料進行修改.
三:封裝性:屬性封裝和方法封裝
屬性封裝:private. 一旦成員變量使用private,在類中可以任意通路,但是!超出了本類範圍之外就不能直接通路了,即在本類之外進行間接通路,用setter和getter方法設定和取得間接通路。對此還可以在該方法中進行文法的控制-檢驗代碼。setXxx進行設定資料,指派,無傳回值,但有參數;getXxx進行拿取,有傳回值,return。
四:構造方法: 主要作用是給類中的屬性進行指派。 構造方法的注意事項書p95.
例;class Person{
public Person(String name,int age){
this.name=name;//此時用this是為了差別參數與成員變量
this.age=age;
//this.setName(name);而這個this指對象
//this.setAge(age);
}
五;this關鍵字
1.當方法的局部變量和類的成員變量重名的時候,根據“就近原則”優先使用局部變量,如果通路本類當中的成員變量時,我們可以用this,this.成員變量來區分與局部變量的關系
2.哪個對象調用方法誰就是this。
六.局部變量和成員變量的關系(參數也時一個局部變量)
1.定義的位置不一樣
局部變量:在方法的内部;
成員變量:在方法的外部,直接寫在其中
2.作用範圍不一樣
局部變量:隻有在方法當中才能使用;
成員變量:整個類當中
3.預設值不一樣
局部變量:沒有預設值,要使用則手動指派;
成員變量:有預設值
七.static關鍵字
:如果在程式中申明屬性的話,則屬性稱為全局屬性,(有些也稱靜态屬性)。在我們進行static全局變量之後,對屬性 的值需要改變時,最好由類名稱直接調用。
類屬性調用格式:類名稱.static屬性 例:Person.country=“B城”;
Java中常用的四塊記憶體區域
1 棧記憶體空間:儲存所有的對象名稱(準确的來說是儲存了引用的堆記憶體空間的位址)
2 堆記憶體空間:儲存每個對象的具體屬性内容
3 全局資料區:儲存static類型的屬性
4 全局代碼區:儲存所有的方法定義