版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)2016 年 10 月 11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程名稱Java技術(shù)實(shí)驗(yàn)項(xiàng)目名 稱實(shí)驗(yàn)一 Java開(kāi)發(fā)環(huán)境的安裝與配置指導(dǎo)教師教 師 評(píng) 語(yǔ)教師簽名:年 月日一、實(shí)驗(yàn)?zāi)康? .掌握J(rèn)DK的安裝步驟(有條件的話可以在 Linux系統(tǒng)下安裝)。2 .理解環(huán)境變量 PATH, CLASSPATH的作用,以及它們的設(shè)置方法(Win98和 Win2000/XP 下的不同設(shè)置方法)。3 .熟悉TextPad (或JCreator)編輯環(huán)境,編寫(xiě)簡(jiǎn)單的Application 程序,并編譯和解釋 執(zhí)行。4 .記錄編譯和執(zhí)行Java程序當(dāng)中的系統(tǒng)錯(cuò)誤信息提示,并給出解決
2、辦法。二、實(shí)驗(yàn)原理1 .掌握安裝Jdk1.6的過(guò)程。2 .安裝JCreator軟件,用于編譯java程序。3 .在Textpad環(huán)境下編寫(xiě)一個(gè) HelloWorld.java 程序,在DOS提示符下編譯并執(zhí)行這個(gè)程 序。4 .設(shè)置環(huán)境變量 PATH, CLASSPATH,使得Java程序能正確編譯和執(zhí)行 。5 .編寫(xiě)一個(gè)類A,它位于包a中,保存到A.java中,再編寫(xiě)一個(gè)類 B,它位于包b中,保 存到B.java中。在類B中實(shí)例化類 A的一個(gè)對(duì)象。分別編譯類 A和類B。三、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M ,硬盤為40G,安裝 WindowsXP操作系統(tǒng)
3、。另外,使用JCreator , JDK1.6.0等軟件四、實(shí)驗(yàn)過(guò)程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)1 .安裝Jdk1.6.0集成環(huán)境,安裝成功后,配置path , classpath路徑,讓用戶在任何 目錄下均可用到 Java的系統(tǒng)資源。 先配置JAVA_HOME%環(huán)境變量,路徑為jdk的目錄; 配置path環(huán)境變量,路徑為JAVA_HOME%bin; 再配置classpath環(huán)境變量,路徑為JAVA_HOME%jrelib;2 .在記事本編與helloworld 程序,并在DOS命令行下編譯運(yùn)行。在JCreator中與出如下代碼,并保存為HelloWorld.java :
4、public class HelloWorld public static void main(String口 args)System.out.println("HelloWorld!");在命令行中進(jìn)入到該文件路徑,并輸入javac HelloWorld.java完成編譯,再輸入java HelloWorld 完成運(yùn)行。3 .用記事本編寫(xiě)包 a包b的程序,并用DOS命令行運(yùn)行。執(zhí)行過(guò)程:將兩個(gè)記事本,改名為A.java和B.java,并寫(xiě)出如下程序:A. java文件的源程序:package a;public class Apublic void say()System.
5、out.println("Succeed!");B.java文件中的源程序 package b;import a.*;public class Bpublic static void main(String args)A aa=new A();aa.maker();先在DOS命令行中編譯 A.java文件,在命令行中輸入 javac A.java -d .再編譯B.java文件,在命令行中輸入 javac B.java -d .在命令行中輸入java b.B即可完成。五、實(shí)驗(yàn)結(jié)論、分析、思考題與心得體會(huì)通過(guò)本次實(shí)驗(yàn),我有以下幾方面的收獲、認(rèn)識(shí)和體會(huì):1、學(xué)會(huì)了在記事本和命令
6、行JCreator,等環(huán)境下編寫(xiě)程序及運(yùn)行程序的方法;2、學(xué)會(huì)了如何安裝 JDK,以及如何配置 JAVA_HOME% , path, classpath等環(huán)境變 量3、加深了 Java中相關(guān)語(yǔ)法的認(rèn)識(shí):文件名必須與public類的類名相同,并且一個(gè)文件中只允許有一個(gè)public類。Java對(duì)大小寫(xiě)敏感,如String中的S就嚴(yán)格區(qū)分大小寫(xiě);對(duì)中文標(biāo)點(diǎn)符號(hào)和英文標(biāo)點(diǎn)符號(hào)敏感,java只能識(shí)別英文標(biāo)點(diǎn)符號(hào)。在用記事本編寫(xiě)包放在兩個(gè)文件中輸入 javac A.javaa包b的程序,并用DOS命令行運(yùn)行時(shí)。要將兩個(gè)類分別要先編譯A.java再編譯B.java,在編譯時(shí)一定要在命令行中d.和javac
7、B.java -d .才能自動(dòng)打包;兩個(gè)文件都編譯完成以后,在命令行的父目錄中輸入java b.B來(lái)執(zhí)行,輸入java b.B.java 。3、思考題1) .什么是JVM,它的作用是什么?JVM就是java虛擬機(jī)的英文簡(jiǎn)寫(xiě),java虛擬機(jī)就是為任何的平臺(tái)提供一個(gè)編譯java程序的接口。就是將編譯的java程序翻譯,以供不同的平臺(tái)去識(shí)別。2) .如何理解PATH和CLASSPATH,如何設(shè)置它們。PATH和CLASSPATH分別是Java JDK和JRE的路徑。設(shè)置是在計(jì)算機(jī)屬性中的高級(jí)系統(tǒng)設(shè)置的環(huán)境變量,配置方法如下: 先配置JAVA_HOME%環(huán)境變量,路徑為jdk的目錄; 配置path環(huán)境
8、變量,路徑為JAVA_HOME%bin; 再配置classpath環(huán)境變量,路徑為JAVA_HOME%jrelib;Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)二2016 年 10 月 11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程名稱Java技術(shù)實(shí)驗(yàn)項(xiàng)目名 稱實(shí)驗(yàn)二類的封裝、繼承、多態(tài)指導(dǎo)教師教 師 評(píng) 語(yǔ)教師簽名:年 月日一、實(shí)驗(yàn)?zāi)康? .復(fù)習(xí)、理解OOP的三大特征 一一封裝、繼承和多態(tài)。2 .學(xué)會(huì)使用Java編寫(xiě)簡(jiǎn)單的類。理解類的屬性和方法。3 .掌握關(guān)鍵子private , protected , public的作用,掌握靜公類,內(nèi)部類的概念。4 .掌握多態(tài)的概念。二、實(shí)驗(yàn)原理分別編寫(xiě)兩個(gè)類Point2D
9、 , Point3D 來(lái)表示一維空間和二維空間的點(diǎn),使之滿足卜列要求 :(1) Point2D有兩個(gè)整型成員變量x, y (分別為二維空間的 X,Y方向坐標(biāo)),Point2D的構(gòu)造方法要實(shí)現(xiàn)對(duì)其成員變量x, y的初始化。(2) Point2D有一個(gè)void型成員方法offset(int a, int b),它可以實(shí)現(xiàn) Point2D的平移。(3) Point3D是Point2D的直接子類,它有有二個(gè)整型成員變量x,y,z (分別為二維空間的X,Y,Z 方向坐標(biāo)),Point3D 有兩個(gè)構(gòu)造方法:Point3D(int x,int y,int z) 和 Point3D(Point2Dp,int
10、z),兩者均可實(shí)現(xiàn)對(duì) Point3D的成貝變重x, y,z的初始化。(4) Point3D 有一個(gè) void 型成員方法 offset(int a, int b,int c) ,該方法可以實(shí)現(xiàn)Point3D的平移。(5) 在Point3D 中的主函數(shù) main()中實(shí)例化兩個(gè) Point2D 的對(duì)象p2d1 , p2d2 ,打印出 它們之間的距離,冉實(shí)例化兩個(gè) Point3D的對(duì)象p3d1 , p3d2 ,打印出他們之間的距離 。(提示:java.lang.Math.sqrt() 方法)三、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M ,硬盤為40G,安裝Windo
11、wsXP操作系統(tǒng)。另外,使用JCreator , JDK1.6.0等軟件四、實(shí)驗(yàn)過(guò)程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)利用類的繼承寫(xiě)一個(gè)point2D 類,其子類是point3D 。子類Point3D的構(gòu)造函數(shù)調(diào)用了父類的構(gòu)造函數(shù);計(jì)算平面兩點(diǎn)的距離函數(shù)和計(jì)算空間兩點(diǎn)的距離函數(shù)寫(xiě)在父類Point2D中,并且他們是靜態(tài)方法,在子類繼承后,在其主方法(主方法是靜態(tài)的)中可以直接調(diào) 用(或者通過(guò)類名調(diào)用);另外平移函數(shù)可以對(duì)點(diǎn)進(jìn)行平移 。源程序如下:class Point2D int x,y;public Point2D(int x,int y) 有參構(gòu)造函數(shù),對(duì)x, y初始化thi
12、s.x=x;this.y=y;void offset(int a,int b) 平移函數(shù)x=x+a;y=y+b;public static double distance2D(Point2D a,Point2D b )returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2); 靜態(tài)方法,求平面兩點(diǎn)的距離public static double distance3D(Point3D a,Point3D b )returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2)+Math.pow
13、(a.z-b.z),2);靜態(tài)方法,求空間兩點(diǎn)的距離public class Point3D extends Point2D int z;Point3D(int x,int y,int z)super(x,y);this.z=z;Point3D(Point2D p,int z)super(p.x,p.y);this.z=z;void offset(int a,int b,int c)構(gòu)造函數(shù),對(duì)x, y, z初始化構(gòu)造函數(shù),對(duì)x, y, z初始化平移函數(shù)x+=a;y+=b;z+=c;public static void main(String args口兒Point2D p2d1=new Po
14、int2D(10,3);Point2D p2d2=new Point2D(2,2);Point3D p3d1=new Point3D(10,11,0);Point3D p3d2=new Point3D(1,6,0);Point3D p3d3=new Point3D(p2d1,16);國(guó)管理員:命令提K將Microsoft Vindow71版本 6.1,7601版權(quán)所有2009 Microsoft Carpa»tlon4保留所有權(quán)利&C: Usei'sXAdm in>cd desk topCz Misers Ml dm in leti*jitopDes<to
15、p>jau ac Poir>t3D_C= MJsersMIdminPoint3DdistancesD=9.86225774829855distance3D-10.2956301409S7System.out.println("distance2D="+distance2D(p2d1,p2d2);System.out.println("distance3D="+distance3D(p3d1,p3d2);運(yùn)行結(jié)果:五、實(shí)驗(yàn)結(jié)論、分析、思考題與心得體會(huì)通過(guò)本次實(shí)驗(yàn),我有以下幾方面的收獲、認(rèn)識(shí)和體會(huì):1、學(xué)會(huì)了類的繼承、封裝、多態(tài)的基本應(yīng)用,學(xué)會(huì)了
16、兩個(gè)方法 aqrt()和pow()在程序 中的運(yùn)用。2、加深了 Java中相關(guān)語(yǔ)法的認(rèn)識(shí)子類繼承父類的非私有成員,但是不能繼承構(gòu)造方法,必須用super ()來(lái)調(diào)用父類的構(gòu)造方法。構(gòu)造方法可以通過(guò)形參的個(gè)數(shù)、類型、排列不同來(lái)重載。Math類屬于java.lang包,并且pow ()和sqrt ()都是static靜態(tài)方法,可以直接通過(guò) Math.pow()和Math.sqrt()來(lái)調(diào)用。Static靜態(tài)方法只能直接調(diào)用靜態(tài)成員,不能直接調(diào)用非靜態(tài)成員。3、思考題1).什么是類的多態(tài)性。接口的多種不同的實(shí)現(xiàn)方式即為多態(tài)。同一段代碼在不同的地方,會(huì)執(zhí)行不同的操作。Java技術(shù)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三2016
17、 年 10 月 11日學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)課程名稱Java技術(shù)實(shí)驗(yàn)項(xiàng)目名 稱實(shí)驗(yàn)三基十GUI的網(wǎng)絡(luò)通信程序設(shè)計(jì)指導(dǎo)教師教 師 評(píng) 語(yǔ)教師簽名:年月日一、實(shí)驗(yàn)?zāi)康? .掌握J(rèn)ava中GUI程序的編寫(xiě),包括事件監(jiān)聽(tīng)機(jī)制。2 .掌握J(rèn)ava的網(wǎng)絡(luò)通信編程,ServerSocket , Socket類的使用。3 .掌握J(rèn)ava中多線程的編程,Thread類,Runnable 接口的使用。4 .掌握用面向?qū)ο蟮姆椒ǚ治龊徒鉀Q復(fù)雜問(wèn)題。二、實(shí)驗(yàn)原理編寫(xiě)程序完成以下功能:1 .設(shè)計(jì)一個(gè)基于GUI的客戶-服務(wù)器的通信應(yīng)用程序,如圖1,圖2所示回服務(wù)器|x眼勢(shì)器設(shè)置:Port: W口而- Sla
18、rthelloSay: |helloSay圖1 Socket通信服務(wù)器端界面客戶端nrni'x客戶批設(shè)置:Stiver IP: 127 0j0.1Server Purt; 4000CunntctIhi all號(hào)ay:hi all寫(xiě)”圖2 Socket通信客戶端界面2 .圖1為Socket通信服務(wù)器端界面,點(diǎn)擊該界面中的Start】按鈕,啟動(dòng)服 務(wù)器監(jiān)聽(tīng)服務(wù)(在圖1界面中間的多行文本區(qū)域顯示“ Serverstarting 字樣)。圖2為Socket通信客戶端界面,點(diǎn)擊該界面中的Connect】按鈕與服務(wù) 器建立鏈接,并在圖2所示界面中間的多行文本區(qū)域顯示“Connect to serv
19、er字樣,當(dāng)服務(wù)器端監(jiān)聽(tīng)到客戶端的連接后,在圖1界面中間的多行文本區(qū)域追 加一行“ Client connected 字樣,并與客戶端建立 Socket連接。3 .當(dāng)圖1所示的服務(wù)器端和圖2所示的客戶機(jī)端建立Socket連接后,編程 實(shí)現(xiàn)這兩端的數(shù)據(jù)通信,每次將接收到對(duì)方的數(shù)據(jù)追加顯示在多行文本框中。三、思考題1 .對(duì)整個(gè)實(shí)驗(yàn)進(jìn)行總結(jié),寫(xiě)出實(shí)驗(yàn)心得。2 .在完成上述實(shí)驗(yàn)內(nèi)容的基礎(chǔ)上,嘗試實(shí)現(xiàn)服務(wù)器端能夠與多個(gè)客戶機(jī)進(jìn) 行通信。三、使用硬件、軟件環(huán)境PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M ,硬盤為40G,安裝WindowsXP操作系統(tǒng)。另外,使用JCreator, JDK1.6.
20、0等軟件四、實(shí)驗(yàn)過(guò)程、步驟及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)分別編寫(xiě)兩個(gè)文件 Client.javaServer.java;這兩個(gè)代碼的結(jié)構(gòu)十分相似,都是先寫(xiě)一個(gè)主類,再寫(xiě)另一個(gè)實(shí)現(xiàn)類,主類通過(guò)創(chuàng)建實(shí)現(xiàn)類的對(duì)象來(lái)調(diào)用其構(gòu)造方法來(lái)實(shí)現(xiàn)功能 。實(shí)現(xiàn)類中寫(xiě)了很多方法,也寫(xiě)了很多內(nèi)部類,方法層層調(diào)用。實(shí)現(xiàn)類在構(gòu)造方法中寫(xiě)了調(diào)用了實(shí)現(xiàn)GUI的函數(shù),也為按鈕注冊(cè)了監(jiān)聽(tīng)器。在不同的內(nèi)部類中寫(xiě)了不同監(jiān)聽(tīng)器所調(diào)用的actioPerformed ()方法。在服務(wù)器中創(chuàng)建 ServerSocket對(duì)象來(lái)接受客戶端的連接請(qǐng)求,并指定端口號(hào),客戶端通過(guò)Socket對(duì)象來(lái)向服務(wù)器的ip和端口發(fā)送連接請(qǐng)求。服務(wù)器
21、在接到連接請(qǐng)求后,服務(wù)器 會(huì)創(chuàng)建一個(gè)新的 Socket對(duì)象與客戶端的 Socket對(duì)象連接。連接成功后通過(guò)IO流來(lái)通 信,服務(wù)器的輸入流是客戶端的輸出流,服務(wù)器的輸出流時(shí)客戶端的輸入流。服務(wù)器代碼如下:import java.awt.*;import java.awt.event.*;import java.util.*;import java.io.*;import .*;import javax.swing.*;public class Serverpublic static void main(String口 args)MyFrame serve = new MyFrame();serv
22、e.setVisible(true);serve.setResizable(false);/ 設(shè)置此窗體是否可由用戶調(diào)整大小serve.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/ 設(shè)置默認(rèn)關(guān)閉操作class MyFrame extends JFrameJTextField port;JButton start;JTextArea content;JTextField cin;JButton say;Socket socket;MyFrame()init();StartListen sListen = new StartListen();cl
23、ass ServerThread extends Threadpublic void run()try BufferedReader in = new BufferedReader(newInputStreamReader(socket.getInputStream(); /創(chuàng)建一個(gè)緩沖輸出流,其形參為從套接字socket中獲取的輸入流String str; while(true)str = in.readLine();/ 按行讀取content.append( str+"n");catch (Exception ex) 客戶端代碼如下:import java.awt.*;
24、import java.awt.event.*;import java.util.*;import java.io.*;import .*;import javax.swing.*;import java.util.Calendar;public class Clientpublic static void main(String口 args)catch (Exception ex) class SayListen implements ActionListenerString str;public void actionPerformed(ActionEvent e)try PrintWri
25、ter out = new PrintWriter(new BufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);從 socket 獲取字節(jié)輸出流,并將其最終轉(zhuǎn)化為PrintWriterstr=cin.getText();/從文本框中獲取字符串賦給strif(!str.isEmpty()out.println(new Date()+ "n"+ str);打印日期和 strcontent.append(new Date()+"n me:"+str+"n"); out.flush();/清空緩存區(qū) cin.setText("");catch (Exception ex) class ClientThread extends Thread public void run() try BufferedReader in = new BufferedReader(newInputStreamReader(socket.getInputStream();/獲取 socket 對(duì)象的字節(jié)輸入流,并將字節(jié)流最終轉(zhuǎn)換為緩沖字符輸入流String str;while(true)str = in.readLine();/ 按行讀取/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版物流企業(yè)車輛租賃承包運(yùn)輸合同范本6篇
- 二零二五版物流企業(yè)市場(chǎng)調(diào)研與分析合同3篇
- 娛樂(lè)行業(yè)安全工作總結(jié)制藥行業(yè)安全工作總結(jié)
- 引導(dǎo)學(xué)生樹(shù)立正確語(yǔ)文學(xué)習(xí)態(tài)度
- 電子產(chǎn)品客服工作總結(jié)
- 網(wǎng)頁(yè)設(shè)計(jì)美工工作總結(jié)
- 音樂(lè)行業(yè)演出場(chǎng)地衛(wèi)生消毒計(jì)劃
- 二零二五年度鋼結(jié)構(gòu)建筑拆除與安裝一體化合同
- 2025版消防安全設(shè)施安裝合同3篇
- 二零二五年度環(huán)保節(jié)能設(shè)備銷售、安裝、能效評(píng)估服務(wù)合同3篇
- 小學(xué)一年級(jí)數(shù)學(xué)20以內(nèi)的口算題(可直接打印A4)
- 工業(yè)自動(dòng)化生產(chǎn)線操作手冊(cè)
- 《走進(jìn)神奇》說(shuō)課稿
- 2024年內(nèi)蒙古中考語(yǔ)文試卷五套合卷附答案
- 五年級(jí)下冊(cè)語(yǔ)文教案 學(xué)習(xí)雙重否定句 部編版
- 南京地區(qū)幼兒園室內(nèi)空氣污染物與兒童健康的相關(guān)性研究
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 初中物理光學(xué)難題難度含解析答案
- 《霍爾效應(yīng)測(cè)量磁場(chǎng)》課件
- 《瘋狂動(dòng)物城》全本臺(tái)詞中英文對(duì)照
- 高考作文復(fù)習(xí)任務(wù)驅(qū)動(dòng)型作文的審題立意課件73張
評(píng)論
0/150
提交評(píng)論