標籤:
一、 實驗內容
1. 使用JDK編譯、運行簡單的Java程式
2.使用Eclipse 編輯、編譯、運行、調試Java程式
二、 實驗步驟
【實驗一】命令列下java程式的開發
- 首先雙擊案頭上的Xface終端表徵圖。
- 開啟終端(類似Windows下的cmd),之後會自動運行shell程式。
- 輸入cd Code命令進入Code目錄。
- 輸入mkdir 20135308 命令建立實驗目錄,可以使用ls命令或dir命令查看建立的目錄情況。
- 輸入cd 20135308命令進入實驗目錄,再輸入mkdir exp1建立第一個實驗目錄,然後輸入cd exp1進入實驗一目錄,可以輸入pwd命令查看當前工作路徑。
- 輸入gedit Hello.java,編輯Hello.java,並輸入以下代碼:
1. 1 package ljp;
2. 2 import java.util.Scanner;
3. 3 public class Hello{
4. 4 public static void main(String[] args){
5. 5 System.out.println("Input your first name, please:");
6. 6 Scanner s = new Scanner(System.in);
7. 7 String name = s.next();
8. 8 System.out.println("Hello " + name + " !");
9. 9 }
10
7.注意代碼的第一行,這會影響到我們使用javac編譯代碼的方式。
注意代碼第二行,我們使用到Java類庫中的類時,要用import匯入相關的類(可以暫時理解為C語言中include的功能)
8.輸入javac -d . Hello.java命令編譯代碼,輸入java ljp.Hello命令運行程式。結果如所示:
【實驗二】Eclipse下Java程式開發、調試
- 在命令列中輸入eclipse命令並斷行符號或單擊案頭上的Eclipse EE表徵圖開啟Eclipse。
- 在Eclipse中單擊File->New-> Java Project建立Java項目。
- 輸入項目名稱HelloLC,並單擊Finish按鈕完成建立項目。
- 在Eclipse中單擊File->New->Class建立Java類。
- 根據Java代碼規範輸入包名lc,類名HelloLC,並勾選上自動產生main函數選項,最後單擊Finish按鈕。
- 輸入如下代碼:
1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}
7.單擊運行按鈕(或使用Ctrl+F11快速鍵),就可以在控制台(Console)中看到運行結果。
8.下面練習偵錯工具,首先通過單擊Window->Open Perspective->Debug開啟調試視圖。
9.偵錯工具首先要會設定斷點和單步運行。設定斷點比較簡單。然後單擊調試按鈕(或使用F11快速鍵)開始調試Java程式,我們可以把程式停留在第4行。注意,此時第4行代碼並沒有執行,我們可以把滑鼠放到變數名上來查看變數的值,此時i的值並不是5,我們通過單步運行讓程式運行到第5行,單步運行有兩種:Step Into(快捷捷F5)和Step Over(快捷捷F5),這兩種單步運行功能在運行語句時沒有區別,在執行函數調用語句時,Step Into會跳入函數實現,Step Over會直接執行完函數,實際使用中我們優先使用Step Over,只有函數執行出錯了,說明程式問題在被調用函數中,這時再回來通過StepInto進入函數進行調試。我們單擊一下Step Over表徵圖(或F6),程式停在了第5行,這時查看變數i的值,會看到i等於5。
10.步執行效率比較慢,如果我們感覺到第6行到第10行的代碼沒有問題了,想讓程式直接運行到第11行,怎麼辦?首先我們要在第11行設定斷點,然後單擊Resume表徵圖(快速鍵F8),程式就運行到了第11行。
11.逐步執行效率比較慢還導致另外一個問題,比如一個大迴圈中間出了問題怎麼辦?這時可以通過條件斷點解決問題。調試迴圈代碼時,會有一個值我們特別關注,這時在Variable標籤中查看變數的值,比如我們此時比較關注sum,每次逐步執行都可以看到sum的變化情況了。
設定條件斷點,我們在第11行左邊單擊滑鼠右鍵,選擇Breakpoint Properties...。
12.我們設定條件“i==50”, 按一下F8,我們可以查看i的是50了。
【實驗三】練習
import java.util.Scanner;
public class Fibonacci {
public static voidmain(String[] args){
Scanner scanner = newScanner(System.in);
System.out.println("Pleaseinput this fibonacci n:");
int n = scanner.nextInt();
int sum = 0;
for(int i = 1; i <=n; i++){
sum +=fibonacci(i);
}
System.out.println("Thesum is:"+sum);
}
//遞迴實現方式
public static intfibonacci(int n){
if(n <= 2){
return 1;
}else{
returnfibonacci(n-1) + fibonacci(n-2);
}
}
//遞推實現方式
public static intfibonacciNormal(int n){
if( n<=2 ){
return 1;
}
int n1 = 1, n2 = 1, sn= 0;
for(int i = 0; i <n - 2;i++){
sn = n1 + n2;
n1 = n2;
n2 = sn;
System.out.println(fibonacci())
}
return sn;
}
}
三、 總結
這是我第一次在網路上完成實驗,感覺很新鮮,看見婁老師花費兩天時間為我們精心編寫的實驗指導非常感動,也備受鼓舞,老師為我們如此盡心負責,我也一定會好好學習java。
這次實驗還是沒有太大難度,我一直跟著老師的指導操作,看見標出的重點痛點,我都會記在心裡,感覺學習了很多新知識。但是我也在實驗中遇到了一些問題。
- 在實驗一中1,我輸入完程式後在終端中無法找到檔案地址,也就無法運行hello world程式,後來我關掉所有頁面,重新開啟終端,在不開啟編輯軟體的情況下,輸入剛才檔案儲存的路徑才可以運行程式,這一點我至今也未搞懂是什麼原因。
- 在實驗二中,我第一次在指導下使用Eclipse編寫程式,我之前一直不太知道如何使用這個軟體,感覺這個軟體的確使用很方便。在大迴圈中設定條件斷點輸入i=50時是成功的,後來重新整理介面時右側黃框中的i=50就不見了。
- 實驗三是按照學號選題,我按照之前的學號模5原則選了第三個實驗。在這個程式中,它需要使用者輸入一個整型變數,於是我用到了前幾節課中練習過得應用scanner來實現鍵盤的輸入。這個程式,我仿照以前運用C語言編寫Fibonacci數列的思想,在實現求前兩個之和並賦值給下一個數中查詢了下書上相關的代碼。
這次實驗由於網速問題,我幾乎每分鐘都因為中斷連線要重新重新整理,浪費了很多實驗時間,但是感覺在這次實驗中收穫良多,即使這次大多是些操作上基礎的內容,但老師溫馨提醒的重點真的是我之前不曾注意到的地方,打好基礎,熟練操作才是以後編寫java程式的一塊基石。
Java實驗報告一