南昌工程學院Java實驗指導書_第1頁
南昌工程學院Java實驗指導書_第2頁
南昌工程學院Java實驗指導書_第3頁
南昌工程學院Java實驗指導書_第4頁
南昌工程學院Java實驗指導書_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 概 述一、 上機實驗的目的上機實驗的目的是提高學生的分析問題、解決問題的能力和動手能力,通過實踐環節理解Java語言的基本結構和程序設計方法。通過親手編程掌握Java 語言編程的方法。二、 實驗基本內容為了使學生在上機實驗時目標明確,本實驗指導書針對課程內容編寫了9個實驗。學生可以在課內機時先完成指導書中給出的程序,理解所學的知識,在此基礎上再編寫其他應用程序。指導書中的9個實驗如下。一、 Java程序設計基礎二、 Java語言基礎三、 Java語言面向對象基礎四、 異常處理和包裝類的編程練習五、 Java語言的字符串類六、 多線程基礎編程七、 多線程并發編程八、 字符流和字符流輸入/輸出編

2、程九、 集合、列表、映射類編程三、 實驗任務與時間安排Java 編程技術是一門實踐性很強的課程,除了在課內安排的實驗外,鼓勵同學在課外使用相關技術進行編程練習。Java 編程技術上機實驗時間為18學時,與教學內容同時進行上機實驗。18個上機學時分為9個實驗。四、 實驗設備要求Java的開發和運行環境對機器的配置要求較高。下面給出的是實驗用機的軟件和硬件基本配置。軟件配置:Windows 2000 Professional、IE5.5以上硬件配置:CPU P4 2.0G以上、內存 512MB以上實驗一 Java程序設計基礎實驗目的1、 學習構建Java語言開發和運行環境2、 學習使用EditPl

3、us編寫Java源程序3、 學習使用javac命令編譯源程序4、 學習使用java命令運行程序5、 初步了解使用Java語言進行程序設計的基本步驟6、 為進行后續實驗做好準備實驗要求1、 下載、安裝Java軟件開發工具包(JSDK);2、 設置相關環境變量;3、 使用EditPlus編寫一個簡單的Java程序;4、 使用javac命令編譯源程序;5、 使用java命令運行程序,觀察運行結果。實驗內容1、 Java軟件開發工具包(JSDK)的下載與安裝(1) 下載SDK為了建立基于SDK 的Java 運行環境,需要先下載Sun 的免費SDK 軟件包。SDK 包含了一整套開發工具,其中包含對編程最

4、有用的是Java 編譯器、Applet 查看器和Java 解釋器。在瀏覽器中輸入 所示的Sun 公司網站頁面。圖 1.1在頁面右邊“Popular Downloads”欄中可看到最新版的SDK 軟件包(早期版本稱為JDK),這里顯示的是“J2SE 5.0”(當前最新版)。單擊“J2SE 5.0”超鏈接,可看到圖1.2 所示頁面。圖 1.2在頁面的“Download JDK 5.0 Update 6”欄可以選擇下載 最新的J2SE 5.0 SDK 軟件包。有兩種選擇:一種是在線安裝“Windows Installation”;一種是離線安裝“Windows Offline Installatio

5、n”。單擊頁面中“SDK”列對應的“DOWNLOAD”超鏈接,可看到圖1.3 所示的下載協議說明書。圖 1.3單擊“ACCEPT”按鈕,同意Sun 公司的協議,可進入到圖1.4 所示的下載頁面,單擊“Windows Offline Installation, Multi-language”超鏈接,開始下載工作,下載的安裝文件保存為“jdk-1_5_0_06-windows-i586-p.exe”。圖 1.4(2) 安裝SDK運行“jdk-1_5_0_06-windows-i586-p.exe”軟件包,可安裝SDK,在安裝過程中可以設置安裝路徑及選擇組件,默認的安裝路徑為“C:Program F

6、ilesJavajdk1.5.0_06”,這里將安裝目錄指定為“D:jdkjdk1.5.0_06”,默認的組件選擇是全部安裝。(3) SDK安裝目錄中的Java命令安裝成功后,D:jdkjdk1.5.0_06 中的文件和子目錄結構如圖1.5 所示。圖 1.5其中,“bin”文件夾中包含編譯器(javac.exe)、解釋器(javac.exe)、Applet 查看器(appletviewer.exe)等Java命令的可執行文件,如圖1.6 所示。“demo”文件夾中包含一些源代碼的程序示例。圖 1.62、 環境變量的設置SDK 中的工具都是命令行工具,需要在命令行窗口從命令行提示符下運行它們。很

7、多人可能會不習慣,但這是Sun 特意采取的策略,為的是把精力更多地投入到Java 語言本身而不是花在開發工具上。為了能正確方便的使用SDK,可手工配置一些Windows 的環境變量。以Windows 2000 為例說明設置過程。在桌面“我的電腦”圖標上單擊右鍵,選擇“屬性”菜單,將出現系統特性設置界面,如圖1.7 所示。圖 1.7在“高級”選項卡中單擊“環境變量”按鈕。將出現“環境變量”設置界面,如圖1.8 所示。圖 1.8在“系統變量”框中選擇“Path”,然后單擊“編輯”按鈕,在出現的“編輯系統變量”對話框中,在“變量值”欄的命令前添加“D:jdkjdk1.5.0_06bin;”命令,如圖

8、1.9 所示。圖 1.9用同樣方法設置環境變量“classpath”,其值為“D:jdkjdk1.5.0_06lib;”命令。設置完成后,單擊“開始”“運行”,在對話框中輸入“cmd”,點擊“確定”或鍵盤回車鍵后打開命令行窗口。在命令提示符下輸入“java”或“javac”,回車后,如果出現其用法參數提示信息,則安裝正確,如圖1.10所示。圖 1.10為了在打開命令行窗口時可以直接進入包含你開發的java程序的路徑下,下面以Windows 2000為例說明設置過程。(1)首先建立一個存放java 源程序的路徑和文件夾,如將實驗中建立的java 源程序都存放在為“d:javaprog”文件夾中。

9、(2)單擊“開始”“所有程序”“附件”“命令提示符”,選擇“命令提示符”選項右擊,在出現的下拉菜單中選擇“屬性”菜單,將打開“命令提示符 屬性”對話框,如圖1.11 所示。圖 1.11(3)在“命令提示符 屬性”對話框中選擇“快捷方式”選項,在“起始位置”欄輸入“d:javaprog”,單擊“確定”按鈕。進行了上面的設置后,打開命令行窗口時將直接進入“e:javaprog”路徑下。如果沒有進行上述設置,可使用DOS 命令,直接輸入“d:”按回車進入到d 盤,再輸入“cd java”到d 盤的java 子目錄下,再輸入“cd prog”即可到“e:javaprog”路徑下。3、 使用EditPl

10、us編寫源程序要編寫Java 程序,需要有文本編輯器。可以使用操作系統提供的Edit 或記事本作為編輯器,最好選擇EditPlus 編輯軟件,它可以使用不同顏色顯示Java 的關鍵字和類名,簡單好用,同時可以對程序進行編譯和運行。EditPlus為共享軟件,在教育網各個軟件下載網站都有下載。下載安裝EditPlus軟件后打開EditPlus 編輯軟件,如圖1.17 所示,在其右邊文本區輸入如下代碼。public class HelloJava public static void main(String args) System.out.println(Hello Java!);圖1.17將文

11、件命名為HelloJava.java,保存為文本文件格式文件,注意保存文件的路徑。根據前面環境變量的設置,HelloJava.java 應該保存在“e:javaprog”的路徑下。4、 使用javac命令編譯源程序Java 源程序編寫后,要使用Java 編譯器(javac.exe)進行編譯,將Java 源程序編譯成可執行的程序代碼。Java 源程序都是擴展名為 .java 的文本文件。編譯時首先讀入Java 源程序,然后進行語法檢查,如果出現問題就終止編譯。語法檢查通過后,生成可執行程序代碼即字節碼,字節碼文件名和源文件名相同,擴展名為 .class。可按照以下步驟操作:(1) 打開命令提示符

12、窗口進入Java 源程序所在路徑。(2) 鍵入“javac HelloJava.java”,如圖1.18 所示。圖 1.8(3) 按回車鍵開始編譯(注意:文件名大小寫敏感)。如果源程序沒有錯誤,則屏幕上沒有輸出,鍵入 “dir”按回車鍵后可在目錄中看到生成了一個同名字的.class 文件“Hello. class” ,如圖1.18 所示。否則,將顯示出錯信息。5、 使用java命令運行程序使用Java 解釋器(java.exe)可將編譯后的字節碼文件HelloJava.class 解釋執行。在命令提示符窗口鍵入“java HelloJava”,按回車鍵即開始解釋并可看到運行結果,如果看到如圖1

13、.19 所示結果,表明程序運行成功了,這是一種字符方式的應用程序其結果顯示在屏幕。圖 1.196、 在EditPlus中編譯和運行程序EditPlus中可以設置在后臺運行javac.exe和java.exe或其它外部可執行程序,同時可以指定當前編輯的文件或其它內容作為外部程序的執行參數,并將外部程序運行的結果顯示在消息欄中,這可簡化對Java程序編譯和執行的操作,提高編程效率。(1) 打開EditPlus ,單擊“工具”“配置用戶工具”菜單,如圖1.22 所示。圖 1.22(2) 在打開的“參數設置”窗口如圖1.23、圖1.24 所示配置編譯與運行環境。(a) 設置“編譯”工具單擊“組名稱”按

14、鈕確定工具組的名稱。單擊“添加工具”按鈕,從彈出的快捷菜單中選擇“程序文件”命令。在“菜單文字”欄中輸入“編譯”文字;在“命令”欄中輸入或通過文件夾選擇javac.exe文件的路徑;在“參數”欄選擇“文件名稱”;在“初始目錄”欄輸入Java 程序所在的路徑。(b) 設置“運行”工具與(a)同樣的方法可以設置“運行”工具。請同學自己練習。圖 1.23圖 1.24(3) 編譯與運行設置工具后,在“工具”菜單下的下拉菜單中就可以對Java 程序進行編譯與運行操作了。(a) 單擊“工具”“編譯”菜單,如圖1.25 所示。就開始對選中的程序進行編譯處理。該過程要等一會兒。圖 1.25(b) 編譯通過后,

15、可在右下方窗口看到編譯結果,如圖1.26 所示。如果程序有問題,會看到提示。圖 1.26(c) 編譯成功后,可運行該程序。單擊“工具”“運行”菜單,如圖1.27 所示。圖 1.27(d) 運行成功后,可在右下方窗口看到程序的運行結果,如圖1.28 所示。圖 1.28實驗二 Java語言基礎實驗目的1、 了解Java 的數據類型;2、 掌握各種變量的聲明方式;3、 理解運算符的優先級;4、 掌握Java 基本數據類型、運算符與表達式、數組的使用方法;5、 理解Java 程序語法結構,掌握順序結構、選擇結構和循環結構語法的程序設計方法;6、 通過以上內容,掌握Java 語言的編程規則。實驗要求1、

16、 編寫一個聲明Java 不同數據類型變量的程序;2、 編寫一個使用運算符、表達式、變量的程序;3、 編寫一個使用Java 數組的的程序;4、 編寫表達式語句、復合語句的程序;5、 編寫使用不同選擇結構的程序;6、 編寫使用不同循環結構結構的程序。實驗內容1、 聲明不同數據類型的變量(1) 編寫聲明不同數據類型變量的程序文件LX2_1.java,源代碼如下。public class EXP2_1 public static void main(String args) byte b=0x55;short s=0x55ff;int i=1000000;long l=0xffffL;char c=a

17、;float f=0.23F;double d=0.7E-3;boolean B=true;String S=這是字符串類數據類型;System.out.println(字節型變量 b = +b);System.out.println(短整型變量 s = +s);System.out.println( 整型變量 i = +i);System.out.println(長整型變量 l = +l);System.out.println(字符型變量 c = +c);System.out.println(浮點型變量 f = +f);System.out.println(雙精度變量 d = +d);Sys

18、tem.out.println(布爾型變量 B = +B);System.out.println(字符串類對象 S = +S);(2) 編譯并運行該程序,結果如圖2.1 所示。圖 2.12、 了解變量的使用范圍(1) 建立EXP2_2.java 文件,通過本程序了解變量的使用范圍,源代碼如下。public class EXP2_2 static int i=10;public static void main(String args) int k=10;System.out.println(i=+i);System.out.println(k=+k);System.out.println(i=

19、+i);System.out.println(k=+k);/編譯時將出錯,已出k的使用范圍(2) 編譯EXP2_2.java此時會出現錯誤提示如圖2.2 所示。因為變量k 在方法塊中聲明,在方法塊之外它是不存在的,所以編譯時會出錯。圖 2.2(3) 修改上面的程序(4) 成功運行該程序思考:EXP2_2.java 程序說明了什么問題?3、 使用關系運算符和邏輯運算符(1) 建立使用關系運算符和邏輯運算符的程序文件,源代碼如下。class EXP2_3 public static void main(String args) int a=25, b=20, e=3, f=0;boolean d=

20、ab;System.out.println(a=25,b=20,e=3,f=0);System.out.println(因為關系表達式 a5)System.out.println(因為e 非0 且a/e 為8 大于5,所以輸出 a/e +a/e);if (f!=0 & a/f5)System.out.println(a/f = +a/f);elseSystem.out.println(因為f 值為0,所以輸出 f = +f);(2) 編譯并運行該程序,結果如圖2.3 所示。圖 2.34、 使用數組(1) 建立使用數組的程序,本程序建立了一個長度為5 的1 維數組,一個長度為12 的2 維數組,

21、源代碼如下。public class EXP2_4 public static void main(String args) int a=new int5;int arr1=new int34;a0=10;a1=10+a0;a2=30;a3=40;a4= a1+ a2;arr100=0; arr101=1; arr102=2;arr110=3; arr111=4; arr112=5;arr120=6; arr121=7; arr122=8;System.out.println(a+0+ = +a0);System.out.println(a+1+ = +a1);System.out.print

22、ln(a+2+ = +a2);System.out.println(a+3+ = +a3);System.out.println(a+4+ = +a4);System.out.println(arr1(+0+,+0+) = +arr100);System.out.println(arr1(+0+,+1+) = +arr101);System.out.println(arr1(+0+,+2+) = +arr102);System.out.println(arr1(+1+,+0+) = +arr110);System.out.println(arr1(+1+,+1+) = +arr111);Sys

23、tem.out.println(arr1(+1+,+2+) = +arr112);(2) 編譯并運行程序,結果如圖2.4 所示。圖 2.45、 使用表達式語句與復合語句(1) 建立包含表達式語句程序,源代碼如下。class EXP2_5public static void main(String args) int k, i=3, j=4;k=20*8/4+i+j*i;System.out.println(表達式(20*8/4+i+j*i)+k);(2) 建立包含復合語句程序,源代碼如下。class EXP2_6public static void main(String args) int

24、k, i=3, j=4;k=i+j;System.out.println(在復合塊外的輸出 k=+k);float f;f=j+4.5F;i+;System.out.println(在復合塊內的輸出 f=+f);System.out.println(在復合塊內的輸出 k=+k);System.out.println(在復合塊外的輸出 i=+i);(3) 編譯并運行上述兩個源程序,結果如圖2.5、2.6 所示。(4) 將變量i 在塊內定義會怎樣?改變其他變量的位置看看會發生什么變化。思考:指出程序的復合結構以及變量的使用范圍。圖 2.5圖 2.66、 使用選擇語句 6.1、 使用if.else

25、語句(1) 程序功能:使用if.else 語句構造多分支,判斷某一年是否為閏年。閏年的條件是符合下面二者之一:能被4 整除,但不能被100 整除;能被4 整除,又能被100 整除。(2) 編寫源程序文件,代碼如下。public class EXP2_7 public static void main(String args) boolean leap;int year=2005;if (year%4=0 & year%100!=0) | (year%400=0) / 方法1System.out.println(year+ 年是閏年);elseSystem.out.println(year+ 年

26、不是閏年);year=2008; / 方法2if (year%4!=0)leap=false;else if (year%100!=0)leap=true;else if (year%400!=0)leap=false;elseleap=true;if (leap=true)System.out.println(year+ 年是閏年);elseSystem.out.println(year+ 年不是閏年);year=2050; / 方法3if (year%4=0) if (year%100=0) if (year%400=0)leap=true;elseleap=false;elseleap=

27、false;elseleap=false;if (leap=true)System.out.println(year+ 年是閏年);elseSystem.out.println(year+ 年不是閏年);(3) 編譯運行程序,其結果如圖2.7 所示。圖 2.7思考:本程序中有幾個選擇語句,哪些具有嵌套關系?6.2、 使用switch 語句(1) 程序功能:在不同溫度時顯示不同的解釋說明。(2) 程序源代碼如下。class EXP2_8public static void main(String args) int c=38;switch (c10?1:c25?2:c35?3:4) case 1

28、:System.out.println( +c+ 有點冷。要多穿衣服。);case 2:System.out.println( +c+ 正合適。出去玩吧。);case 3:System.out.println( +c+ 有點熱。);default:System.out.println( +c+ 太熱了!開空調。);(3) 編譯運行程序,其結果如圖2.8 所示。圖 2.87、 使用循環語句7.1、 for 循環語句練習(1) 程序功能:按5 度的增量打印出一個從攝氏溫度到華氏溫度的轉換表。(2) 程序源代碼如下。class EXP2_9public static void main (Strin

29、g args) int h,c;System.out.println(攝氏溫度華氏溫度);for (c=0; c=40; c+=5) h=c*9/5+32;System.out.println(+c+h);(3) 編譯并運行程序,其結果如圖2.9 所示。圖 2.97.2、 while 循環語句練習(1) 程序功能:運行程序后從鍵盤輸入數字1/2/3 后,可顯示抽獎得到的獎品;如果輸入其它數字或字符顯示“沒有獎品給你!”。(2) 程序源代碼如下。import java.io.*;class EXP2_10 public static void main(String args) throws I

30、OException char ch;System.out.println(按 1/2/3 數字鍵可得大獎!);System.out.println(按Q鍵可退出循環操作.);while (ch=(char)System.in.read()!= ) System.in.skip(2); / 跳過回車鍵switch (ch) case 1:System.out.println(恭喜你得大獎,一輛汽車!);break;case 2:System.out.println(不錯呀,你得到一臺筆記本電腦!);break;case 3:System.out.println(沒有白來,你得到一臺冰箱!);b

31、reak;case q: System.out.println(“歡迎下次再來!”); System.exit(0);default:System.out.println(真不幸,你沒有獎品!下次再來吧。);(3) 編譯源程序。(4) 在命令提示符窗口運行程序,然后分別按1、2、3、r 結果如圖2.10 所示。圖 2.107.3、 dowhile 循環語句練習(1) 程序功能:求12+100 之和,并將求和表達式與所求的和顯示出來。(2) 程序源代碼如下。class EXP2_11 public static void main(String args) int n=1, sum=0;do s

32、um+=n+;while (n=100);System.out.println(1+2.+100 =+sum);(3)編譯并運行程序,結果如圖2.11 所示。圖 2.117.4、 多重循環練習(1) 輸出九九乘法表的程序,源代碼如下。public class EXP2_12public static void main(String args)int i,j,n=9;System.out.print( * |);for (i=1;i=n;i+)System.out.print( +i);System.out.print(n-|);for (i=1;i=n;i+)System.out.print

33、(-);System.out.println();for (i=1;i=n;i+)System.out.print( +i+ |);for (j=1;j=i;j+)System.out.print( +i*j);System.out.println();(2) 編譯并運行程序,結果如圖2.12 所示。圖 2.12思考:觀察輸出的結果,發現九九表的行和列沒有對齊,如何才能輸出一張行列對齊的九九表?實驗三 Java語言面向對象基礎實驗目的通過編程和上機實驗理解Java語言是如何體現面向對象編程基本思想,了解類的封裝方法,以及如何創建類和對象,了解成員變量和成員方法的特性,掌握面向對象程序設計的方法

34、,了解類的繼承性和多態性的作用,了解接口的作用。實驗要求1、 編寫一個體現面向對象思想的程序;2、 編寫一個創建對象和使用對象的方法的程序;3、 編寫一個顯示當前日期和時間的程序;4、 編寫不同成員變量修飾方法的程序;5、 編寫不同成員方法修飾方法的程序;6、 編寫體現類的繼承性(成員變量、成員方法、成員變量隱藏)的程序;7、 編寫體現類的多態性(成員方法重載、構造方法重載)的程序;8、 編寫體現接口功能的程序。實驗內容1、 設計類來描述真實客觀世界中的事物,使用類的成員變量來表示事物的屬性和狀態,使用類的成員方法來提供對成員變量的訪問或修改(1) 程序功能:設計一個用來描述汽車的類,使用類的

35、非靜態成員變量來表示汽車的車主姓名、當前的速率和當前方向盤的轉向角度,使用類的非靜態成員方法來表示改變汽車的速率和停車兩個操作。(2) 程序源代碼如下。public class EXP3_1 private String ownerName; /車主姓名 private float curSpeed; /當前車速 private float curDirInDegree; /當前方向盤轉向角度 public EXP3_1(String ownerName) this.ownerName=ownerName; public EXP3_1(String ownerName, float speed

36、, float dirInDegree) this(ownerName); this.curSpeed=speed; this.curDirInDegree=dirInDegree; public String getOwnerName() /提供對車主姓名的訪問 return ownerName; public float getCurDirInDegree() /提供對當前方向盤轉向角度的訪問 return curDirInDegree; public float getCurSpeed() /提供對當前車速的訪問 return curSpeed; public void changeSp

37、eed(float curSpeed) /提供改變當前的車速 this.curSpeed = curSpeed; public void stop() /提供停車 this.curSpeed=0; (3) 編譯源程序。2、 創建類的對象,使用對象的方法(類的非靜態方法)來訪問或修改對象的變量(類的非靜態變量)(1) 創建類EXP3_1的對象,在調用類的構造函數時指定對象的變量的初始值,以后再使用對象的方法來訪問或修改對象的變量的值。(2) 程序代碼如下。public class EXP3_2 public static void main(String args) EXP3_1 car=new

38、 EXP3_1(成龍,200f,25f); System.out.println(車主姓名: +car.getOwnerName(); System.out.println(當前車速: +car.getCurSpeed(); System.out.println(當前轉向角度: +car.getCurDirInDegree(); car.changeSpeed(80); System.out.println(在調用changeSpeed(80)后,車速變為: + car.getCurSpeed(); car.stop(); System.out.println(在調用stop()后, 車速變為

39、: +car.getCurSpeed(); (3) 編譯并運行,結果如圖3.1所示。圖 3.13、 編寫顯示當前時間和日期的程序(3) 程序功能:該程序通過使用一個自定義類Time,實現顯示當前日期和時間的功能。(4) 程序代碼如下。import java.util.Calendar;class Time private Calendar t;private int y, m, d, hh, mm, ss;Time ()t=Calendar.getInstance();y=t.get(t.YEAR);m=t.get(t.MONTH)+1;d=t.get(t.DATE);hh=t.get(t.H

40、OUR_OF_DAY);mm=t.get(t.MINUTE);ss=t.get(t.SECOND);public String getDate() return y+ 年+m+月+d+日;public String getTime() return hh+ 時+mm+分+ss+秒;public class EXP3_3public static void main(String args)Time t=new Time();System.out.println(當前日期:+t.getDate();System.out.println(當前時間:+t.getTime();(5) 編譯并運行,結果

41、如圖3.2所示。圖 3.24、 使用修飾符來限定類的成員變量或成員方法的屬性有時需要公開一些變量和方法,有時需要禁止其他對象使用變量和方法,這時可以使用修飾符來實現這個目的。常用的修飾符如下:public private protected package static final transient volatile不同修飾符的訪問控制權限如表3.1 所示。訪問權限修飾符類子類包所有類和包publicprivateprotectedpackage表 3.1(1) 程序功能:通過兩個類StaticDemo、EXP3_4 說明靜態變量/方法與實例變量/方法的區別。(2) 程序源代碼如下。clas

42、s StaticDemo static int x;int y;public static int getX() return x;public static void setX(int newX) x = newX;public int getY() return y;public void setY(int newY) y = newY;public class EXP3_4 public static void main(String args) System.out.println(靜態變量x=+StaticDemo.getX();System.out.println(實例變量y=+S

43、taticDemo.getY(); /非法,編譯時將出錯StaticDemo a= new StaticDemo();StaticDemo b= new StaticDemo();a.setX(1);a.setY(2);b.setX(3);b.setY(4);System.out.println(靜態變量a.x=+a.getX();System.out.println(實例變量a.y=+a.getY();System.out.println(靜態變量b.x=+b.getX();System.out.println(實例變量b.y=+b.getY();(3) 對上面的源程序進行編譯,會出現如圖3

44、.3所示的出錯提示。圖 3.3(4) 將源程序中的出錯語句刪除或使用解釋符/隱藏起來,例如,/System.out.println(實例變量y=+StaticDemo.getY();(5) 重新編譯并運行該程序,結果如圖3.4所示。圖 3.45、 調用方法時參數傳遞的練習在其它語言中,函數調用或過程調用時參數有傳值調用和傳地址調用之分。在Java 中,方法中的參數傳遞可以分為傳值調用或對象方法調用等方式。傳值調用即傳遞的參數是基本數據類型,調用方法時在方法中將不能改變參數的值,這意味著只能使用它們。對象調用是指先調用對象,再調用對象的方法,這種方式可以修改允許存取的成員變量。所以,如果不想改變

45、參數的值,可以采用傳值調用的方法。如果想改變參數的值,可采用對象調用的方法,間接修改參數的值。5.1、編寫一個傳值調用的程序(1) 程序功能:程序首先給整型變量x 和y 賦一個初值10,然后使用傳值調用方式調用方法ff1對x 和y 做乘方及輸出x 和y 的乘方值,最后再輸出x 和y 的乘方值。(2) 程序源代碼如下。class EXP3_5 public static void main(String args) int x=10, y=10;ff1(x, y);System.out.println(x=+x+, y=+y);static void ff1(int passX, int pas

46、sY) passX=passX*passX;passY=passY*passY;System.out.println(passX=+passX+, passY=+passY);(3) 編譯并運行,結果如圖3.5。圖 3.55.2、編寫一個調用對象方法的程序(1) 程序功能:通過調用對象的方法在方法調用后修改了成員變量的值。(2) 程序源代碼如下。class EXP3_6 public static void main(String args) Power p=new Power();p.ff2(10,10);System.out.println(方法調用后 x=+p.x+, y=+p.y);c

47、lass Powerint x=10, y=10;void ff2(int passX, int passY) System.out.println(初始時 x=+x+, y=+y);x=passX*passX;y=passY*passY;System.out.println(方法調用中 x=+x+, y=+y);(3) 編譯并運行,結果如圖3.6。圖 3.66、 類的繼承性練習新類可從現有的類中產生,并保留現有類的成員變量和方法并可根據需要對它們加以修改。新類還可添加新的變量和方法。這種現象就稱為類的繼承。當建立一個新類時,不必寫出全部成員變量和成員方法。只要簡單地聲明這個類是從一個已定義的

48、類繼承下來的,就可以引用被繼承類的全部成員。被繼承的類稱為父類或超類(superclass),這個新類稱為子類。Java 提供了一個龐大的類庫讓開發人員繼承和使用。設計這些類是出于公用的目的,因此,很少有某個類恰恰滿足你的需要。你必須設計自己的能處理實際問題的類,如果你設計的這個類僅僅實現了繼承,則和父類毫無兩樣。所以,通常要對子類進行擴展,即添加新的屬性和方法。這使得子類要比父類大,但更具特殊性,代表著一組更具體的對象。繼承的意義就在于此。6.1、 創建將被繼承的類(1) 程序源代碼如下。public class EXP3_7protected String xm; /具有保護修飾符的成員變量protected int xh;void

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論