Java上機實驗指導書_免費下載_第1頁
Java上機實驗指導書_免費下載_第2頁
Java上機實驗指導書_免費下載_第3頁
Java上機實驗指導書_免費下載_第4頁
Java上機實驗指導書_免費下載_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、java面向對象技術實驗指導書 實驗一 java語言運行環(huán)境及程序流程控制一、實驗目的1 掌握下載java sdk軟件包、editplus編輯軟件的方法。 2 掌握設置java程序運行環(huán)境的方法。 3 掌握編寫與運行java程序的方法。 4 了解java語言的概貌。 5 為學習java語言和進行java程序的實驗做好準備工作。 二、實驗內容與指導(一) jdk 的下載、安裝與配置1進入oracle官方網站下載java se。/technetwork/java/index.html找到jdk相應版本后,下載安裝即可。2、安裝jdk。 雙擊即可。3jdk安裝

2、后到安裝目錄下觀察其目錄結構。(二) 設置環(huán)境變量jdk 中的工具都是命令行工具,需要從命令行即msdos 提示符下運行它們。很多人可能會不習慣,但這是sun 特意采取的策略,為的是把精力更多地投入到java 語言本身而不是花在開發(fā)工具上。為了能正確方便的使用jdk,可手工配置一些windows 的環(huán)境變量。以windows vista 為例說明設置過程。在桌面“計算機”圖標上單擊右鍵,選擇“屬性”菜單,將出現系統屬性設置界面,如圖1-1 所示。圖1-1 在“高級”選項卡中單擊“環(huán)境變量”按鈕。將出現“環(huán)境變量”設置界面,如圖1-2所示。圖1-2(1)新建path環(huán)境變量。在“系統變量”框中選

3、擇新建,如圖1-3所示。 圖1-3 (2)編輯path環(huán)境變量值。在path變量值后面添加值:%java_home%bin 如圖1-4 圖1-4(3)新建環(huán)境變量“classpath”,其值為:.;%java_home%libdt.jar;%java_home%libtools.jar。設置完成后,單擊“開始”“所有程序”“附件”“命令提示符”,或在搜索程序和文件中輸入命令:cmd,打開dos 窗口,在命令提示符下輸入“java”或“javac”,回車后,如果出現其用法參數提示信息,則安裝正確,如圖1-5所示。圖1-5 (三) 使用editplus 要編寫java 程序,需要有文本編輯器??梢?/p>

4、使用操作系統提供的記事本作為編輯器,最好選擇editplus 編輯軟件,它可以使用不同顏色顯示java 的關鍵字和類名,簡單好用,同時可以對程序進行編譯和運行。1下載并安裝editplus編輯軟件 editplus編輯軟件的安裝方法很簡單,安裝軟件提示要求去做即可。 2編寫在屏幕上顯示文字“歡迎你學習java 語言!”的文件(hello.java)。打開editplus 編輯軟件,如圖1-6所示,在其右邊文本區(qū)輸入如下代碼。public class hello public static void main(string args) system.out.println(歡迎你學習java 語

5、言!); 圖1-63將文件命名為hello.java,保存為文本文件格式文件,注意保存文件的路徑。 (四) 編譯java 源程序java源程序編寫后,要使用java編譯器(javac.exe)進行編譯,將java源程序編譯成可執(zhí)行的程序代碼。java源程序都是擴展名為 .java的文本文件。編譯時首先讀入java 源程序,然后進行語法檢查,如果出現問題就終止編譯。語法檢查通過后,生成可執(zhí)行程序代碼即字節(jié)碼,字節(jié)碼文件名和源文件名相同,擴展名為 .class。 1 打開命令提示符窗口(msdos窗口)進入java源程序所在路徑。 2 鍵入編譯命令和要諞譯的源程序文件名,javac hello.j

6、ava按回車鍵開始執(zhí)行(注意:文件名h要大寫,否則運行會出問題)。 如果源程序沒有錯誤,則屏幕上沒有輸出,鍵入 “dir”按回車鍵后可在目錄中看到生成了一個同名字的.class文件“hello. class” ,如圖1-7 所示。否則,將顯示出錯信息。 圖1-7(五) 運行java 程序使用java解釋器(java.exe)可將編譯后的字節(jié)碼文件hello.class解釋為本地計算機代碼。 在命令提示符窗口或msdos窗口鍵入解釋器文件名和要解釋的字節(jié)碼文件名:java hello按回車鍵即開始解釋并可看到運行結果,如果看到如圖1-8所示結果,表明程序運行成功了,這是一種字符方式的應用程序其結

7、果顯示在屏幕。 圖1-8(六)程序流程控制 1、從鍵盤輸入三個整數x,y,z,按照由小到大的順序輸出。 2、從鍵盤輸入一個學生所考的計算機課程的分數,并對其成績進行等級評定。(switch-case語句實現) 3、求1!+2!+3!+4!+5! 4、打印輸入如下圖形。 * * * * * * * * 圖1-9 圖1-10 5、猜數字游戲。 編寫完善下列java程序,由系統隨機產生1-100之間的整數,用戶由鍵盤輸入自己的猜測,程序返回提示信息,“猜大了”,“猜小了”,“猜對了”,用戶可根據提示再次輸入猜測,直到提示信息是“猜對了”。import java.util.scanner;import

8、 java.util.random;/產生隨機數的類public class guessnumber public static void main(string args) scanner reader= new scanner(system.in);random random=new random();system.out.println(輸入1-100之間的整數);int number=random.nextint(100)+1;/random.nextint(100)產生0,100)中的隨機整數 int yourguess=0; system.out.println(輸入你的猜測);

9、yourguess=reader.nextint(); while(代碼1) if (【代碼2】) system.out.println(猜大了,再輸入你的猜測;); yourguess=reader.nextint(); else if (【代碼3】) system.out.println(猜小了,再輸入你的猜測;); yourguess=reader.nextint(); system.out.println(猜對了;);實驗二 數組一、實驗目的掌握java中一維數組和二維數組的應用二、實驗內容及指導1、用數組求解fibonacci數列的前20項。2、分別用冒泡法和選擇法對8個數從小到大排

10、序。3、編程實現在矩陣(用二維數組表示)中找最大數。4、編程實現輸出以下矩陣:對角線元素為1,其余元素為0。實驗三 java面向對象程序設計類與對象的創(chuàng)建一、實驗目的1、掌握類的定義、對象的創(chuàng)建及類和對象之間的關系2、理解并掌握構造方法的使用二、實驗內容(一) 創(chuàng)建對象并使用對象1運行下列程序并觀察運行結果,并試述程序中每條語句的作用及程序的功能。class ccircle double pi; double radius; void setcircle(double r, double p) pi=p; radius=r; double getradius() return radius;

11、public class lianxi_1 public static void main(string args) ccircle cir1=new ccircle(); cir1.setcircle(2.0,3.1416); system.out.println(radius=+cir1.getradius(); 2、編寫一個java應用程序,包括tank類(坦克的刻畫)與fight類(子彈發(fā)射)。tank類的數據成員:speed:double;/坦克的速度bulletamout:int;/坦克的炮彈數量tank類的成員方法:speedup(int s):void;/加速的方法speedd

12、own(int d):void;/減速的方法setbulletamout(int p):void;/設置坦克炮彈的數量fire():void;/發(fā)射在fight的main方法中用tank類創(chuàng)建坦克,并用坦克調用方法設置炮彈的數量,顯示坦克的加速、減速和發(fā)射等行為。tank.javapublic class tank【代碼1】/聲明double型變量speed,刻畫速度【代碼2】/ 聲明int型變量bulletamout,刻畫炮彈數量void speedup(int s)【代碼3】/將s+speed賦值給speedvoid speeddown(int d)if (speed-d0)【代碼4】/將

13、s+speed賦值給speed else speed=0;void setbulletamount(int m) bulletamout=m;int getbulletamount() return speed;double getspeed() return speed;void fire() if (bulletamount)=1 【代碼5】/將bulletamount-1賦值給bulletamount system.out.println(“打出一發(fā)炮彈”); else system.out.println(“沒有炮彈了,無法開火”); fight.javapublic class fi

14、ght public static void main(string args) tank tank1,tank2; tank1=new tank();tank2=new tank(); tank1.setbulletamount(10); tank2.setbulletamount(10); system.out.println(“tank1的炮彈數量:”+tank1.getbulletamount(); system.out.println(“tank2的炮彈數量:”+tank2.getbulletamount(); tank1.speedup(80); tank2.speedup(80)

15、; system.out.println(“tank1目前的速度:”+tank1.getspeed(); system.out.println(“tank2目前的速度:”+tank2.getspeed();tank1.speeddown(15);tank2.speeddown(30); system.out.println(“tank1目前的速度:”+tank1.getspeed(); system.out.println(“tank2目前的速度:”+tank2.getspeed();system.out.println(“tank1開火:”);tank1.fire(); system.out

16、.println(“tank2開火);tank2.fire();tank2.fire();system.out.println(“tank1的炮彈數量:”+tank1.getbulletamount();system.out.println(“tank2的炮彈數量:”+tank2.getbulletamount();3、創(chuàng)建一個矩形類,可以求得矩形的面積和周長(要求:通過構造函數完成初始化操作)4、創(chuàng)建一個加法類,能夠實現兩個整數的加法及三個整數的加法,并輸出123+134及125+456+234的值(要求:通過構造函數完成)【課后練習】1、 請定義一個名為card的撲克牌類,該類有兩個pri

17、vate訪問權限的字符串變量face和suit:face描述一張牌的牌面值(如:ace, deuce, three,four, five, six, seven, eight, nine, ten, jack, queen, king);suit描述一張牌的花色(如:hearts, diamonds, clubs, spades)。定義card類中的public訪問權限的構造方法,為類中的變量賦值;定義protected訪問權限的方法getface(),得到撲克牌的牌面值; 定義protected訪問權限的方法getsuit(),得到撲克牌的花色; 定義方法tostring(),返回表示撲克牌

18、的花色和牌面值字符串(如“ace of hearts”、“ten of clubs”等)。實驗四 java面向對象程序設計封裝性、繼承性、多態(tài)性一、 實驗目的1、理解封裝機制,掌握各種修飾符的應用2、理解繼承機制,掌握繼承的應用3、理解多態(tài)性,掌握方法重載和覆蓋機制4、體會構造方法的作用,掌握構造方法的使用5、體會并掌握this、super的使用二、 實驗內容及指導(一)封裝性-修飾符的使用常用的修飾符如下。 public private protected static final transient volatile 不同修飾符的訪問控制權限如表4-1所示。 表4.1權限修飾符同一類同一包

19、不同包的子類所有類公有的(public)保護的(protected)默認的(friendly)私有的(private)1、程序功能:通過兩個類staticdemo、lianxi4_1說明靜態(tài)變量/方法與實例變量/方法的區(qū)別。 編寫類文件lianxi4_1.java class 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 n

20、ewy) y= newy; public class lianxi4_1 public static void main(string args) system.out.println(靜態(tài)變量x=+staticdemo.getx(); system.out.println(實例變量y=+staticdemo.gety(); / 非法,編譯時將出錯 staticdemo a= new staticdemo(); staticdemo b= new staticdemo(); a.setx(1);a.sety(2); b.setx(3); b.sety(4); system.out.printl

21、n(靜態(tài)變量a.x=+a.getx(); system.out.println(實例變量a.y=+a.gety(); system.out.println(靜態(tài)變量b.x=+b.getx(); system.out.println(實例變量b.y=+b.gety(); 對上面的源程序進行編譯,會出現如圖4-1所示的出錯提示。 圖4-1將源程序中的出錯語句刪除或使用解釋符/隱藏起來,例如, /system.out.println(實例變量y=+staticdemo.gety(); 重新編譯并運行該程序,結果如圖4-2所示。 圖4-2由此例子可得出什么結論?(二) 類的繼承性練習1 進一步理解繼承

22、的含義新類可從現有的類中產生,并保留現有類的成員變量和方法并可根據需要對它們加以修改。新類還可添加新的變量和方法。這種現象就稱為類的繼承。當建立一個新類時,不必寫出全部成員變量和成員方法。只要簡單地聲明這個類是從一個已定義的類繼承下來的,就可以引用被繼承類的全部成員。被繼承的類稱為父類或超類(superclass),這個新類稱為子類。通常要對子類進行擴展,即添加新的屬性和方法。這使得子類要比父類大,但更具特殊性,代表著一組更具體的對象。繼承的意義就在于此。2 創(chuàng)建公共類lianxi4_2(1)編寫程序文件lianxi4_2.java,源代碼如下。public class lianxi4_2pr

23、otected string xm; /具有保護修飾符的成員變量:學生的姓名protected int xh; /具有保護修飾符的成員變量:學生的學號void setdata(string m,int h) /設置數據的方法xm =m;xh = h;public void print() /輸出數據的方法system.out.println(xm+, +xh);(2)編譯lianxi4_2.java,產生類文件lianxi4_2.class。(3)創(chuàng)建繼承的類a 程序功能:通過lianxi4_2 類產生子類lianxi4_3,其不僅具有父類的成員變量xm(姓名)、xh(學號),還定義了新成員變

24、量xy(學院)、xi(系)。在程序中調用了父類的print 方法,同時可以看出子類也具有該方法。b 編寫lianxi4_3.java 程序,源代碼如下。class lianxi4_3 extends lianxi4_2protected string xy; /具有保護修飾符的成員變量:學生所在學院protected string xi; /具有保護修飾符的成員變量:學生所在系public static void main(string args)lianxi4_2 p1 = new lianxi4_2 ();p1.setdata(帥零,12321) ;p1.print();lianxi4_3

25、 s1 = new lianxi4_3() ;s1.setdata(郭麗娜,12345); /調用父類的成員方法s1.xy=經濟管理學院; /訪問本類的成員變量s1.xi=信息管理系; /訪問本類的成員變量s1.print();system.out.print(s1.xm+, +s1.xy+, +s1.xi);(3)編譯并運行程序,其結果如圖4-1所示。圖4-13了解成員變量的隱藏方式所謂隱藏是指子類重新定義了父類中的同名變量,在子類line 中重新定義了x 為x1,y 為y1,隱藏了父類point 中的兩個成員變量x 和y。子類執(zhí)行自己的方法時,操作的是子類的變量,子類執(zhí)行父類的方法時,操作

26、的是父類的變量。在子類中要特別注意成員變量的命名,防止無意中隱藏了父類的關鍵成員變量,這有可能給程序帶來麻煩。4了解成員方法的覆蓋方式(1)方法覆蓋的定義與作用通過繼承,子類可以繼承父類中所有可以被子類訪問的成員方法,但如果子類的方法與父類方法同名,則不能繼承,此時稱子類的方法覆蓋了父類的方法,簡稱為方法覆蓋(override)。方法覆蓋為子類提供了修改父類成員方法的能力。例如,子類可以修改層層繼承下來的object 根類的tostring 方法,讓它輸出一些更有用的信息。下面的程序顯示了在子類circle 中添加tostring 方法,用來返回圓半徑和圓面積信息。(2)編寫覆蓋object

27、類tostring 方法的程序文件lianxi4_4.java,源代碼如下。class circle private int radius;circle(int r) setradius(r);public void setradius(int r) radius=r;public int getradius() return radius;public double area() return 3.14159*radius*radius;public string tostring() return 圓半徑:+getradius()+ 圓面積:+area();public class lia

28、nxi4_4public static void main(string args) circle c=new circle(10);system.out.println(n+c.tostring();(3)編譯并運行程序,其結果如圖4-2 所示圖4-2(4)程序結構分析。程序添加了tostring 方法并修改了它的返回值。由于tostring 和繼承下來的object 類的方法名相同、返回值類型相同,因此覆蓋了超類object 中的tostring 方法。方法覆蓋時要特別注意:用來覆蓋的子類方法應和被覆蓋的父類方法保持同名、相同的返回值類型,以及相同的參數個數和參數類型。5this、supe

29、r 和super()的使用(1)程序功能:說明this、super 和super()的用法。程序首先定義point(點)類,然后創(chuàng)建點的子類line(線)。最后通過lianxi4_5 類輸出線段的長度。程序中通過super(a,b)調用父類point 的構造方法為父類的x 和y 賦值。在子類line 的setline方法中,因為參數名和成員變量名相同,為給成員變量賦值,使用this 引用,告訴編譯器是為當前類的成員變量賦值。在length 和tostring 方法中使用父類成員變量時,使用super 引用,告訴編譯器使用的是父類的成員變量。(2)使用this、 super 和super()的程

30、序文件lianxi4_4.java,源代碼如下。class point protected int x, y;point(int a, int b) setpoint(a, b);public void setpoint(int a, int b) x=a;y=b;class line extends point protected int x, y;line(int a, int b) super(a, b);setline(a, b);public void setline(int x, int y) this.x=x+x;this.y=y+y;public double length()

31、 int x1=super.x, y1=super.y, x2=this.x, y2=this.y;return math.sqrt(x2-x1) * (x2-x1) + (y2-y1) * (y2-y1);public string tostring() return 直線端點: + super.x + , + super.y + +x + , + y + 直線長度: + this.length();public class lianxi4_4public static void main(string args) line line=new line(50, 50);system.out.

32、println(n+line.tostring();(3)編譯并運行程序,結果如圖4-3 所示。圖4-3(三) 類的多態(tài)性練習1 理解類的多態(tài)性類的繼承發(fā)生在多個類之間,而類的多態(tài)只發(fā)生在同一個類上。在一個類中,可以定義多個同名的方法,只要確定它們的參數個數和類型不同。這種現象稱為類的多態(tài)。多態(tài)使程序簡潔,為程序員帶來很大便利。在oop 中,當程序要實現多個相近的功能時,就給相應的方法起一個共同的名字,用不同的參數代表不同的功能。這樣,在使用方法時不論傳遞什么參數,只要能被程序識別就可以得到確定的結果。類的多態(tài)性體現在方法的重載(overload)上,包括成員方法和構造方法的重載。2 方法的重

33、載3構造方法的重載構造方法的名稱和類同名,沒有返回類型。構造方法不能直接調用,只能由new 操作符調用,主要用來完成對象的初始化。重載構造方法的目的是提供多種初始化對象的能力,使程序員可以根據實際需要選用合適的構造方法來初始化對象。(1)程序功能: 編寫構造方法rundemo 的重載程序文件lianxi4_5,源代碼如下。(2)源代碼:class rundemo private string username, password; rundemo() system.out.println(全部為空!);rundemo(string name) username=name;rundemo(str

34、ing name, string pwd) this(name);password=pwd;check();void check() string s=null;if (username!=null)s=用戶名:+username;elses=用戶名不能為空!;if (password!=12345678)s=s+ 口令無效!;elses=s+ 口令:*;system.out.println(s);public class lianxi4_5 public static void main(string args) new rundemo();new rundemo(劉新宇);new rund

35、emo(null,邵麗萍);new rundemo(張馳,12345678);(2)編譯并運行程序,結果如圖4-4所示。圖4-4 (3)三個構造方法,其中 第一個無參構造方法rundemo() 的實際作用是對成員變量賦缺省初值,由于username和password都是string類,所以它們的缺省初值為null。 第二個構造方法rundemo(string) 只有一個參數,用來對成員變量username 賦初值。 第三個構造方法rundemo(string, string) 有兩個參數,并有更多的內容,首先調用this(name),其實際作用就是調用當前類的構造方法rundemo(strin

36、g name);然后對成員變量password 賦值;最后調用check方法來檢查username和password,類似于一般程序的口令驗證。 重載構造方法的執(zhí)行由對象根據實際參數的個數、類型和順序確定。 【課后練習】1. 假如我們在開發(fā)一個系統時需要對員工進行建模,員工包含3個屬性:姓名、工號以及工資。經理也是員工,除了含有員工的屬性外,另外還有一個獎金屬性。請使用繼承的思想設計出員工類和經理類。要求類中提供必要的方法進行屬性訪問。2. 定義一個自己的數學類mymath。類中提供靜態(tài)方法max,該方法接收3個同類型的參數(例如整形),返回其中的最大值。3. 以點類作為基類,從點派生出圓,從

37、圓派生圓柱,設計成員函數輸出它們的面積和體積。實驗五 包、接口、抽象類一、實驗目的1.了解java 中包(package)、接口(interface)和抽象類的作用。2.掌握包、接口、抽象類的設計方法。二、實驗內容及指導(一)了解并使用java 的系統包1 api 包、接口、異常處理的作用包是類和接口的集合。利用包可以把常用的類或功能相似的類放在一個包中。java 語言提供系統包,其中包含了大量的類,可以在編寫java 程序時直接引用它們。所有java api 包都以“java.”開頭,以區(qū)別用戶創(chuàng)建的包。接口解決了java 不支持多重繼承的問題,可以通過實現多個接口達到與多重繼承相同的功能。

38、(二)創(chuàng)建并使用自定義包1自定義包的聲明方式 聲明包語句必須添加在源程序的第一行,表示該程序文件聲明的全部類都屬于這個包。2創(chuàng)建自定義包mypackage在存放源程序的文件夾中建立一個子文件夾mypackage。例如,在“e:javademo”文件夾之中創(chuàng)建一個與包同名的子文件夾mypackage(e:javademomypackage),并將編譯過的class 文件放入該文件夾中。注意:包名與文件夾名大小寫要一致。3在包中創(chuàng)建類(1)ymd.java 程序功能:在源程序中,首先聲明使用的包名mypackage,然后創(chuàng)建ymd 類,該類具有計算今年的年份,可以輸出一個帶有年月日的字符串的功能。

39、(2)編寫ymd.java 文件,源代碼如下。package mypackage; /聲明存放類的包import java.util.calendar; /引用java.util 包的calendar類public class ymd private int year,month,day;public static void main(string arg3)public ymd(int y,int m,int d) year = y;month = (m=1) & (m=1) & (d=31) ? d : 1);public ymd() this(0,0,0);public static i

40、nt thisyear() return calendar.getinstance().get(calendar.year);/返回當年的年份public int year() return year;/返回年份public string tostring()return year+-+month+-+day;/返回轉化為字符串的年-月-日(3)編譯ymd.java 文件,然后將ymd.class 文件存放到mypackage 文件夾中。3編寫使用包mypackage 中ymd 類的程序(1)lianxi5_1.java 程序功能:給定某人姓名與出生日期,計算該人年齡,并輸出該人姓名,年齡,出

41、生日期。程序使用了lianxi5_1的方法來計算年齡。(2)編寫lianxi5_1.java 程序文件,源代碼如下。import mypackage.ymd; /引用mypackage 包中的ymd 類public class lianxi5_1private string name;private ymd birth;public static void main(string args)lianxi5_1 a = new lianxi5_1(張馳,1990,1,11);a.output();public lianxi5_1(string n1,ymd d1)name = n1;birth

42、= d1;public lianxi5_1(string n1,int y,int m,int d)this(n1,new ymd(y,m,d);/初始化變量與對象public int age() /計算年齡return ymd.thisyear() - birth.year(); /返回當前年與出生年的差即年齡public void output()system.out.println(姓名 : +name);system.out.println(出生日期: +birth.tostring();system.out.println(今年年齡 : +age();(3)編譯并運行程序,結果如圖5

43、-1所示。圖5-1(三)使用接口技術1接口的定義與作用接口可以看作是沒有實現的方法和常量的集合。接口與抽象類相似,接口中的方法只是做了聲明,而沒有定義任何具體的操作方法。使用接口是為了解決java 語言中不支持多重繼承的問題。(1)定義一個接口shape2d,利用它來實現二維的幾何形狀類circle和rectangle 面積計算編寫實現接口的程序文件(2)源代碼:interface shape2d/定義shape2d接口final double pi=3.14;/數據成員一定要初始化public abstract double area();/抽象方法,不需要定義處理方式class circl

44、e implements shape2ddouble radius;public circle(double r)/構造方法radius=r;public double area()return (pi * radius * radius);class rectangle implements shape2dint width,height;public rectangle(int w,int h)/構造方法width=w;height=h;public double area()return (width * height);public class interfacetester publ

45、ic static void main(string args)rectangle rect=new rectangle(5,6);system.out.println(area of rect = + rect.area();circle cir=new circle(2.0);system.out.println(area of cir = + cir.area();【課后練習】1.定義一個抽象基類shape,它包含三個抽象方法center()、diameter()、getarea(),從shape類派生出square和circle類,這兩個類都用center()計算對象的中心坐標,dia

46、meter()計算對象的外界圓直徑,getarea()方法計算對象的面積。編寫編寫應用程序使用rectangle類和circle類。2定義一個接口insurance,接口中有四個抽象方法:public int getpolicynumber();public int getcoverageamount();public double calculatepremium();public date getexpirydate()。設計一個類car,該類實現接口的方法,編寫應用程序。實驗六 applet、異常處理與多線程一、實驗目的 1、掌握java applet程序的編寫,理解java appli

47、cation與java applet的區(qū)別2. 了解java異常處理(exception)的作用。3. 掌握異常處理的設計方法。4、掌握線程的概念及生命周期。5. 掌握采用繼承thread 類創(chuàng)建子線程。6. 掌握使用runnable 接口使類線程化。二、實驗內容及指導(一)applet程序的編寫1編寫applet程序lianxi6-1.java,實現功能:該程序通過使用一個自定義類time,實現顯示當前日期和時間的功能,程序運行結果應與圖6-1類似。 圖6-1lianxi6_1.java程序源代碼如下: import java.awt.graphics; import java.applet

48、.applet; import java.util.calendar; class time private calendar t;private int y, m, d, hh, mm, ss; time () t=calendar.getinstance(); y=t.get(calendar.year); m=t.get(t.month)+1; d=t.get(t.date); hh=t.get(t.hour_of_day); mm=t.get(t.minute); ss=t.get(t.second); public string getdate() return y+ 年+m+月+d

49、+日; public string gettime() string s=hh+ 時+mm+分+ss+秒; return s; public class lianxi6_1 extends applet time t=new time(); public void paint(graphics g) g.drawstring(當前日期:+t.getdate(),50,40); g.drawstring(當前時間:+t.gettime(),50,80); (2)編寫瀏覽lianxi6_1類的頁面文件lianxi6_1.html (3)在瀏覽器中瀏覽程序運行結果。 注意:本程序中傳遞了一個grap

50、hics類的對象g,并調用了g的方法drawstring。 2、編寫applet程序lianxi6_2.java,實現功能:建立一個applet小程序,使其可以進行簡單的加法運算。該程序要包含類、接口、屬性、方法、事件等面向對象的基本元素。 程序源代碼如下。 import java.awt.*; import java.awt.event.*; import java.applet.applet; public class lianxi6_2 extends applet implements actionlistener label label1=new label(+); label label2=new label(=); textfield field1=new textfield(6); textfield field2=new textfield(6); textfield field3=new textfield(6); button button1=new button(相加); public void init() / 初始化 add(field1); add(label1); add(field2); add(label2); add(field3); add(button1); button1.addactionl

溫馨提示

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

評論

0/150

提交評論