Java第一次實驗報告,java開發環境與簡單的Java程序
一.實驗目的
1.熟悉JDK開發環境
2.熟練掌握結構化程序設計方法
二.實驗內容
-
打印輸出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其中各位數字立方和等於該數本身。例如,153是一個“水仙花數”。
-
編寫Java程序,求13-23+33-43+…+973-983+993-1003的值。
-
編程求1!+2!+3!+…+20!。
-
編寫Java程序,計算8+88+888+…前10項之和。
-
一個數如果恰好等於它的因子之和,這個數就稱為完數。編寫程序輸出1000以內的所有完數。
-
編寫應用程序,輸出滿足1+2+3+…+n<8888的最大正整數。
-
使用for循環打印下面的圖形
*
* *
* * *
* * * *
* * * * *
三.實驗過程
1. 打印輸出所有的“水仙花數”,所謂“水仙花數”是指一個3位數,其中各位數字立方和等於該數本身。例如,153是一個“水仙花數”。
- 實驗源碼
public class Timu1 {
public static void main(String[] args) {
int x, y, i, j, k;
for(i = 100;i < 999;i ++) {
x = i % 10;
y = i / 10;
j = y % 10;
k = y / 10;
if(Math.pow(x, 3) + Math.pow(j, 3) + Math.pow(k, 3) == i) {
System.out.println(i);
}
}
}
}
- 實驗結果

2. 編寫Java程序,求13-23+33-43+…+973-983+993-1003的值。
- 實驗源碼
public class Timu2 {
public static void main(String[] args) {
int i, j = 1, sum = 0, k=0;
for(i = 13;i <= 1003; i = i + 10) {
k = (j) * i;
sum = sum + k;
j = -j;
}
System.out.println(sum);
}
}
- 實驗結果

3. 編程求1!+2!+3!+…+20!。
- 實驗源碼
public class Timu3 {
public static void main(String[] args) {
int i, j ;
long sum = 0, k=1;
for(i = 1;i <= 20;i++) {
k = 1;
for(j = 1;j <= i;j++) {
k = k * j;
}
sum += k;
}
System.out.println(sum);
}
}
- 實驗結果

4. 編寫Java程序,計算8+88+888+…前10項之和。
- 實驗源碼
public class Timu4 {
public static void main(String[] args) {
int i , y = 8;
long sum = 0,x = 8;
for(i = 1;i <= 10;i++ ) {
sum = sum + x;
x = (x * 10 ) + y;
}
System.out.println(sum);
}
}
- 實驗結果

5. 一個數如果恰好等於它的因子之和,這個數就稱為完數。編寫程序輸出1000以內的所有完數。
- 實驗源碼
public class Timu5 {
public static void main(String[] args) {
int i, j, sum;
for(i=0;i<=1000;i++){
if(i==1) continue;
sum=1;
for(j=2;j<i;j++)
if(i%j==0) sum+=j;
if(sum == i){
System.out.println(i);
}
}
}
}
- 實驗結果

6. 編寫應用程序,輸出滿足1+2+3+…+n<8888的最大正整數。
- 實驗源碼
public class Timu6 {
public static void main(String[] agrs) {
int i, sum = 0;
for(i = 0;sum + i< 8888; i++) {
sum = sum + i;
}
System.out.println(i - 1);
System.out.println(sum);
}
}
- 實驗結果

7. 使用for循環打印下面的圖形
*
* *
* * *
* * * *
* * * * *
- 實驗源碼
public class Timu7 {
public static void main(String[] args) {
int i, j, x = 4,k,l = 4;
for(i = 0;i < 5;i++) {
for(j = x;j > 0;j--) {
System.out.print(" ");
}
x = x -1;
for(k = l;k < 5;k++) {
System.out.print("* ");
}
System.out.print("\n");
l--;
}
}
}
- 實驗結果

總結:
這次實驗報告是Java第一次實驗報告,雖然題目並不是很難,但這次實驗報告的目的旨在讓我們熟悉jdk開發環境,我認為這已經達到目的了,甚至有些題目因為前面做的可能有一些不理解,這一次再做就會熟練,發現以前那些難以看懂的題目,現在做起來很流暢,馬上就能想到方法解決,甚至不止一個方法。總之這次實驗報告還是有收獲的。
第三周總結
本周講了構造方法,匿名對象,this關鍵字,static關鍵字。
構造方法:
構造方法在實例化對象時使用
per = new Person();

這里使用構造方法
它的定義方式與普通方法類似但要主意幾點:
- 1.構造方法的名稱必須類名稱一致;
- 2.構造方法的聲明處不能有任何返回值類型的聲明;
- 3.不能在構造方法中使用return返回一個值;
只要是類就比須存在構造方法,以前的程序沒有構造方法,那是如果明確聲明一個構造方法,那么在編譯時會自動生成一個什么都不做的的構造方法;正是如此所以前面的程序沒有聲明構造方法,對象也是可以進行對象的實例化操作;


如果一個類中已經明確聲明了一個構造方法,那么程序在編譯時將不會生成默認的構造方法;一個類中至少存在一個構造方法,也就是說可以進行構造方法的重載;進行重載時,所有重載的方法按照參數的個數由多到少,或由少到多。
匿名對象:
匿名對象,就是沒有給出明確名字的對象,一般匿名對象只使用一次,並且匿名對象只在堆內存開辟空間,不存在棧內存的引用。匿名對象在實際開發中基本上都是作為其他類的實例化對象的參數傳遞的。


this關鍵字:
1.使用this調用本類中的屬性

當需要這樣賦值的時候就需要this關鍵字了

2.使用this調用構造方法
如果一個類中有多個構造方法,可以使用this關鍵字進行互相調用


- 主意用this調用構造方法需要放在構造方法首行
- 不能循環調用
- 只能在構造方法中調用構造方法
3.this表示當前對象


主要功能就是進行對象的比較


4.強調調用本類方法
就是起到一個強調的作用。
static關鍵字
1.使用static聲明屬性
如果在程序中使用static聲明屬性的話,則此屬性稱為全局屬性,或靜態屬性
前面講了棧內存,堆內存,除此以外還有一個全局數據區,static聲明的屬性就放在這里面

2.使用static聲明方法:
static既可以聲明屬性,也可以聲明方法,用它聲明的方法有時也被稱為“類方法”,可以由類名直接調用


必須要注意的時是,非static聲明的方法可以去調用static聲明的屬性或方法的,但是static聲明的方法是不能調用非static類型聲明的屬性或方法的。
3.理解main()方法:


