




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、合工大JAVA實驗報告計劃合工大JAVA實驗報告計劃23/23合工大JAVA實驗報告計劃Java技術實驗報告實驗一:2016年10月11日學院計算機與信息學院專業(yè)班級姓名成績課程名稱Java技術實驗項目名稱實驗一Java開發(fā)環(huán)境的安裝與配置指導教師教師評語教師署名:年代日一、實驗目的1掌握JDK的安裝步驟(有條件的話能夠在Linux系統(tǒng)下安裝)。2理解環(huán)境變量PATH,CLASSPATH的作用,以及它們的設置方法(Win98和Win2000/XP下的不同樣設置方法)。3熟習TextPad(或JCreator)編寫環(huán)境,編寫簡單的Application程序,并編譯和解說履行。4記錄編譯和履行Ja
2、va程序中間的系統(tǒng)錯誤信息提示,并給出解決方法。二、實驗原理1掌握安裝Jdk1.6的過程。2安裝JCreator軟件,用于編譯java程序。3.在Textpad環(huán)境下編寫一個HelloWorld.java程序,在DOS提示符下編譯并履行這個程序。4.設置環(huán)境變量PATH,CLASSPATH,使得Java程序能正確編譯和履行。5.編寫一個類A,它位于包a中,保留到A.java中,再編寫一個類B,它位于包b中,保存到B.java中。在類B中實例化類A的一個對象。分別編譯類A和類B。三、使用硬件、軟件環(huán)境PC計算機一臺,配置為CPU為1.5G,內存為512M,硬盤為40G,安裝WindowsXP操作
3、系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實驗過程、步驟及原始記錄(算法、原程序、測試結果,分析等)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命令行下編譯運轉。在JCreator中寫出以下代碼,并保留為HelloWorld.java:publicclas
4、sHelloWorldpublicstaticvoidmain(Stringargs)System.out.println(HelloWorld!);在命令行中進入到該文件路徑,并輸入javacHelloWorld.java達成編譯,再輸入javaHelloWorld達成運轉。3用記事本編寫包a包b的程序,并用DOS命令行運轉。履行過程:將兩個記事本,更名為A.java和B.java,并寫出以下程序:Ajava文件的源程序:packagea;publicclassApublicvoidsay()System.out.println(Succeed!);javab.BB.java文件中的源程序:
5、packageb;importa.*;publicclassBpublicstaticvoidmain(Stringargs)Aaa=newA();aa.maker();先在DOS命令行中編譯A.java文件,在命令行中輸入javacA.javad.再編譯B.java文件,在命令行中輸入javacB.java-d.在命令行中輸入即可達成。五、實驗結論、分析、思慮題與心得意會經過本次實驗,我有以下幾方面的收獲、認識和意會:1、學會了在記事本和命令行,JCreator,等環(huán)境下編寫程序及運轉程序的方法;2、學會了怎樣安裝JDK,以及怎樣配置%JAVA_HOME%,path,classpath等環(huán)境
6、變量3、加深了Java中有關語法的認識:文件名必然與public類的類名同樣,而且一個文件中只贊成有一個public類。Java對大小寫敏感,如String中的S就嚴格劃分大小寫;對中文標點符號和英文標點符號敏感,java只好鑒識英文標點符號。在用記事本編寫包a包b的程序,并用DOS命令行運轉時。要將兩個類分別放在兩個文件中,要先編譯A.java再編譯B.java,在編譯時必然要在命令行中輸入javacA.javad.和javacB.javad.才能自動打包;兩個文件都編譯完成此后,在命令行的父目錄中輸入javab.B來履行,輸入。、思慮題1).什么是JVM,它的作用是什么?JVM就是java
7、虛假機的英文簡寫,java虛假機就是為任何的平臺供給一個編譯java程序的接口。就是將編譯的java程序翻譯,以供不同樣的平臺去鑒識。2).怎樣理解PATH和CLASSPATH,,怎樣設置它們。PATH和CLASSPATH分別是JavaJDK和JRE的路徑。設置是在計算機屬性中的高級系統(tǒng)設置的環(huán)境變量,配置方法以下:先配置%JAVA_HOME%環(huán)境變量,路徑為jdk的目錄;配置path環(huán)境變量,路徑為%JAVA_HOME%bin;再配置classpath環(huán)境變量,路徑為%JAVA_HOME%jrelib;Java技術實驗報告實驗二:2016年10月11日學院計算機與信息學院專業(yè)班級姓名成績課程
8、實驗項目實驗二類的封裝、繼指導Java技術名稱名稱承、多態(tài)教師教師評語教師署名:年代日一、實驗目的復習、理解OOP的三大特點封裝、繼承和多態(tài)。學會使用Java編寫簡單的類。理解類的屬性和方法。3.掌握重點字private,protected,public的作用,掌握靜態(tài)類,內部類的見解。掌握多態(tài)的見解。二、實驗原理分別編寫兩個類Point2D,Point3D來表示二維空間和三維空間的點,使之知足以下要求:(1)Point2D有兩個整型成員變量x,y(分別為二維空間的X,Y方向坐標),Point2D的構造方法要實現對其成員變量x,y的初始化。(2)Point2D有一個void型成員方法offse
9、t(inta,intb),它能夠實現Point2D的平移。(3)Point3D是Point2D的直接子類,它有有三個整型成員變量x,y,z(分別為三維空間的X,Y,Z方向坐標),Point3D有兩個結構方法:Point3D(intx,inty,intz)和Point3D(Point2Dp,intz),二者均可實現對Point3D的成員變量x,y,z的初始化。(4)Point3D有一個void型成員方法offset(inta,intb,intc),該方法能夠實現Point3D的平移。(5)在Point3D中的主函數main()中實例化兩個Point2D的對象p2d1,p2d2,打印出它們之間的距
10、離,再實例化兩個Point3D的對象p3d1,p3d2,打印出他們之間的距離。(提示:java.lang.Math.sqrt()方法)三、使用硬件、軟件環(huán)境PC計算機一臺,配置為CPU為1.5G,內存為512M,硬盤為40G,安裝WindowsXP操作系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實驗過程、步驟及原始記錄(算法、原程序、測試結果,分析等)利用類的繼承寫一個point2D類,其子類是point3D。子類Point3D的結構函數調用了父類的結構函數;計算平面兩點的距離函數和計算空間兩點的距離函數寫在父類Point2D中,而且他們是靜態(tài)方法,在子類繼承后,在其主方法(主
11、方法是靜態(tài)的)中能夠直接調用(或許經過類名調用);其他平移函數能夠對點進行平移。源程序以下:classPoint2Dintx,y;publicPoint2D(intx,inty)/有參結構函數,對x,y初始化this.x=x;this.y=y;voidoffset(inta,intb)/平移函數x=x+a;y=y+b;publicstaticdoubledistance2D(Point2Da,Point2Db)returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2);/靜態(tài)方法,求平面兩點的距離publicstaticdoubledis
12、tance3D(Point3Da,Point3Db)returnMath.sqrt(Math.pow(a.x-b.x),2)+Math.pow(a.y-b.y),2)+Math.pow(a.z-b.z),2);/靜態(tài)方法,求空間兩點的距離publicclassPoint3DextendsPoint2Dintz;Point3D(intx,inty,intz)/結構函數,對x,y,z初始化super(x,y);this.z=z;Point3D(Point2Dp,intz)/結構函數,對x,y,z初始化super(p.x,p.y);this.z=z;voidoffset(inta,intb,intc
13、)/平移函數x+=a;y+=b;z+=c;publicstaticvoidmain(Stringargs)Point2Dp2d1=newPoint2D(10,3);Point2Dp2d2=newPoint2D(2,2);Point3Dp3d1=newPoint3D(10,11,0);Point3Dp3d2=newPoint3D(1,6,0);Point3Dp3d3=newPoint3D(p2d1,16);System.out.println(distance2D=+distance2D(p2d1,p2d2);System.out.println(distance3D=+distance3D(p
14、3d1,p3d2);運轉結果:五、實驗結論、分析、思慮題與心得意會經過本次實驗,我有以下幾方面的收獲、認識和意會:1、學會了類的繼承、封裝、多態(tài)的基本應用,學會了兩個方法aqrt()和pow()在程序中的運用。2、加深了Java中有關語法的認識:子類繼承父類的非私有成員,但是不可以夠繼承結構方法,必然用super()來調用父類的結構方法。結構方法能夠經過形參的個數、種類、擺列不同樣來重載。Math類屬于java.lang包,而且pow()和sqrt()都是static靜態(tài)方法,可以直接經過Math.pow()和Math.sqrt()來調用。Static靜態(tài)方法只好直接調用靜態(tài)成員,不可以夠直接
15、調用非靜態(tài)成員。3、思慮題1).什么是類的多態(tài)性。接口的多種不同樣的實現方式即為多態(tài)。同一段代碼在不同樣的地方,會履行不同樣的操作。Java技術實驗報告實驗三:2016年10月11日學院計算機與信息學院專業(yè)班級姓名成績課程實驗項目實驗三鑒于GUI的網指導Java技術名稱名稱絡通訊程序設計教師教師評語教師署名:年代日一、實驗目的掌握Java中GUI程序的編寫,包含事件監(jiān)聽系統(tǒng)。2掌握Java的網絡通訊編程,ServerSocket,Socket類的使用。3掌握Java中多線程的編程,Thread類,Runnable接口的使用。4掌握用面向對象的方法分析和解決復雜問題。二、實驗原理編寫程序達成以下
16、功能:1.設計一個鑒于GUI的客戶-服務器的通訊應用程序,如圖1,圖2所示。圖1Socket通欽佩務器端界面2Socket通訊客端界面2.1Socket通欽佩器端界面,點界面中的【Start】按,啟服器聽服(在1界面中的多行文當地區(qū)示“Serverstarting字”)。2Socket通訊客端界面,點界面中的【Connect】按與服器成立接,并在2所示界面中的多行文當地區(qū)示“Connecttoserver字,當服器端聽到客端的接后,在1界面中的多行文當地區(qū)追加一行“Clientconnected字,”并與客端成立Socket接。3.當1所示的服器端和2所示的客機端成立Socket接后,程兩頭的
17、數據通訊,每次將接收到方的數據追加示在多行文本框中。三、思慮題整個行,寫出心得。在達成上述內容的基上,服器端能與多個客機行通訊。、使用硬件、軟件環(huán)境PC計算機一臺,配置為CPU為1.5G,內存為512M,硬盤為40G,安裝WindowsXP操作系統(tǒng)。其他,使用JCreator,JDK1.6.0等軟件四、實驗過程、步驟及原始記錄(算法、原程序、測試結果,分析等)分別編寫兩個文件Client.javaServer.java;這兩個代碼的結構十分相像,都是先寫一個主類,再寫另一個實現類,主類經過創(chuàng)立實現類的對象來調用其結構方法來實現功能。實現類中寫了好多方法,也寫了好多內部類,方法層層調用。實現類在
18、結構方法中寫了調用了實現GUI的函數,也為按鈕注冊了監(jiān)聽器。在不同樣的內部類中寫了不同樣監(jiān)聽器所調用的actioPerformed()方法。在服務器中創(chuàng)立ServerSocket對象來接受客戶端的連結懇求,并指定端口號,客戶端通過Socket對象來向服務器的ip和端口發(fā)送連結懇求。服務器在接到連結懇求后,服務器會創(chuàng)立一個新的Socket對象與客戶端的Socket對象連結。連結成功后經過IO流來通信,服務器的輸入流是客戶端的輸出流,服務器的輸出流時客戶端的輸入流。服務器代碼以下:importjava.awt.*;importjava.awt.event.*;importjava.util.*;i
19、mportjava.io.*;.*;importjavax.swing.*;publicclassServerpublicstaticvoidmain(Stringargs)MyFrameserve=newMyFrame();serve.setVisible(true);serve.setResizable(false);/設置此窗體能否可由用戶調整大小serve.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/設置默認封閉操作classMyFrameextendsJFrameJTextFieldport;JButtonstart;JTextAr
20、eacontent;JTextFieldcin;JButtonsay;Socketsocket;MyFrame()init();StartListensListen=newStartListen();SayListenstListen=newSayListen();start.addActionListener(sListen);/為按鈕start注冊一個監(jiān)聽器say.addActionListener(stListen);/為按鈕say注冊一個監(jiān)聽器voidinit()setLayout(newFlowLayout();/設置窗體為流式布局setSize(400,400);setLocati
21、on(400,100);add(newJLabel(Port:);port=newJTextField(8888,25);add(port);start=newJButton(Start);add(start);content=newJTextArea(15,35);JScrollPanescroll=newJScrollPane(content);/設置轉動條add(scroll);add(newJLabel(Say:);cin=newJTextField(26);add(cin);say=newJButton(Say);add(say);classStartListenimplements
22、ActionListenerpublicvoidactionPerformed(ActionEvente)start.setEnabled(false);tryServerSockets=newServerSocket(Integer.parseInt(port.getText();創(chuàng)立一個服務器套接字對象s,形參為從port文本框中讀取的整型(端口號)socket=s.accept();PrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/創(chuàng)立
23、一個打印輸出流對象,其形參為從套接字socket對象中獲得的輸出流out.println(Connected);content.append(Clientconnected+n);/對兩個字符串進行拼接ServerThreadst=newServerThread();/創(chuàng)立一個ServerThread對象st,并調用其結構方法st.start();/啟動一個線程,并調用run()方法catch(Exceptionex)classSayListenimplementsActionListenerStringstr;publicvoidactionPerformed(ActionEvente)tr
24、yPrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/創(chuàng)立一個打印輸出流,形參為從套接字socket中獲得的輸出流str=cin.getText();if(!str.isEmpty()out.println(newDate()+n+str);/打印輸出日期和發(fā)送的信息(str)content.append(newDate()+nme:+str+n);out.flush();/清空緩存區(qū)cin.setText();catch(Exceptione
25、x)classServerThreadextendsThreadpublicvoidrun()tryBufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream();/創(chuàng)立一個緩沖輸出流,其形參為從套接字socket中獲得的輸入流Stringstr;while(true)str=in.readLine();content.append(str+n);/按行讀取catch(Exceptionex)客戶端代碼以下:importjava.awt.*;importjava.awt.event.*;import
26、java.util.*;importjava.io.*;.*;importjavax.swing.*;importjava.util.Calendar;publicclassClientpublicstaticvoidmain(Stringargs)MyFrameclient=newMyFrame();client.setVisible(true);client.setResizable(false);/設置此窗體能否可由用戶調整大小client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/設置封閉操作classMyFrameextendsJ
27、FrameJTextFieldip;JTextFieldport;JTextFieldcin;JTextAreacontent;JButtonconnect;JButtonsay;Socketsocket;MyFrame()init();ConnectListencListener=newConnectListen();SayListensListener=newSayListen();connect.addActionListener(cListener);/注冊監(jiān)聽器say.addActionListener(sListener);/注冊監(jiān)聽器voidinit()setLayout(new
28、FlowLayout();setSize(440,500);setLocation(800,100);add(newJLabel(Server:ip);/設置窗體為流式布局ip=newJTextField(,8);add(ip);add(newJLabel(Server:port);port=newJTextField(8888,8);add(port);connect=newJButton(connect);add(connect);content=newJTextArea(16,35);JScrollPanescroll=newJScrollPane(content);add(scroll
29、);add(newLabel(Say:);cin=newJTextField(25);add(cin);say=newJButton(say);add(say);classConnectListenimplementsActionListenerintportNum;publicvoidactionPerformed(ActionEvente)/設置轉動條connect.setEnabled(false);/按下connect按鈕后,connect不可以再次點擊trycontent.setText(Connecttoservern);/在文本區(qū)中顯示ConnecttoservernportNu
30、m=Integer.parseInt(port.getText();/讀取port文本框中的字符串,并將字符串轉變?yōu)檎唾x給portNumsocket=newSocket(ip.getText(),portNum);/定義對象socket,并指定主機號(host)和端口號portNumClientThreadct=newClientThread();/定義一個ClientThread類的對象ctct.start();/啟動一個線程,并調用ClientThread類中的run()方法catch(Exceptionex)classSayListenimplementsActionListenerS
31、tringstr;publicvoidactionPerformed(ActionEvente)tryPrintWriterout=newPrintWriter(newBufferedWriter(newOutputStreamWriter(socket.getOutputStream(),true);/從socket獲得字節(jié)輸出流,并將其最后轉變?yōu)镻rintWriterstr=cin.getText();/從文本框中獲得字符串賦給strif(!str.isEmpty()out.println(newDate()+n+str);/打印日期和strcontent.append(newDate()+nme:+str+n);out.flush(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 私人飛機應急定位發(fā)射器租賃飛行員生命保障服務協(xié)議
- 服裝鞋帽品牌代理合作協(xié)議(含市場調研)
- 物流倉庫主管派遣與倉儲物流安全管理合同
- 智能停車場車位預約與新能源汽車充電服務協(xié)議
- 資產管理公司資產評估師派遣合同
- 區(qū)塊鏈技術在智慧城市建設中的應用培訓協(xié)議
- 海外代購商品售后服務保障協(xié)議
- 帶車位地下室住宅產權變更合同范本
- 高效口腔醫(yī)療器械滅菌袋專業(yè)采購協(xié)議
- 災害救援志愿者服務承諾及行動協(xié)議
- 康復評定學第三章肌力
- 圖形創(chuàng)意(高職藝術設計)PPT完整全套教學課件
- 2023年財會金融-注冊會計師-審計(官方)考試歷年真題甄選版帶答案
- 2023學年完整公開課版粘壓阻力
- 基于STM32的平衡車系統(tǒng)設計
- YY/T 0299-2022醫(yī)用超聲耦合劑
- MT 181-1988煤礦井下用塑料管安全性能檢驗規(guī)范
- GB/T 193-2003普通螺紋直徑與螺距系列
- 因納特工商管理綜合實訓軟件V4.00
- 四議兩公開工作法課件
- 2022年保山數字產業(yè)發(fā)展有限責任公司招聘筆試題庫及答案解析
評論
0/150
提交評論