合工大JAVA实验报告.docx

上传人:b****3 文档编号:27152571 上传时间:2023-06-27 格式:DOCX 页数:31 大小:431.45KB
下载 相关 举报
合工大JAVA实验报告.docx_第1页
第1页 / 共31页
合工大JAVA实验报告.docx_第2页
第2页 / 共31页
合工大JAVA实验报告.docx_第3页
第3页 / 共31页
合工大JAVA实验报告.docx_第4页
第4页 / 共31页
合工大JAVA实验报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

合工大JAVA实验报告.docx

《合工大JAVA实验报告.docx》由会员分享,可在线阅读,更多相关《合工大JAVA实验报告.docx(31页珍藏版)》请在冰豆网上搜索。

合工大JAVA实验报告.docx

合工大JAVA实验报告

《Java技术》实验报告

实验一:

2016年10月

11

学院

计算机与信息学院

专业班级

姓名

成绩

课程名称

Java技术

实验项目名称

实验一Java开发环境的安装与配置

指导教师

教师签名:

年月日

一、实验目的

1•掌握JDK的安装步骤(有条件的话可以在LinUX系统下安装)。

2.理解环境变量PATH,CLASSPATH的作用,以及它们的设置方法(Win98和Win2000/XP

下的不同设置方法)。

3.熟悉TextPad(或JCreator)编辑环境,编写简单的AppIication程序,并编译和解释执行。

4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。

二、实验原理

1.

2.

3.

4.

5.

掌握安装Jdk1.6的过程。

安装JCreator软件,用于编译java程序。

在Textpad环境下编写一个HelloWorld.java程序,在DOS提示符下编译并执行这个程序。

设置环境变量PATH,CLASSPATH,使得Java程序能正确编译和执行。

编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存

到B.java中。

在类B中实例化类A的一个对象。

分别编译类A和类B。

三、使用硬件、软件环境

PC计算机一台,配置为CPU为1.5G,内存为512M,硬盘为40G安装WindowsXP操作系统。

另外,使用JCreator,JDK1.6.0等软件

四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)

1.安装Jdk1.6.0集成环境,安装成功后,配置Path,classpath路径,让用户在任何目

 

2.在记事本编写helloworld程序,并在DOS命令行下编译运行。

HelloWorld.java:

}

}

2先在

再编译

3在命令行中输入javab.B即可完成。

1、

2、

3、

javacHelloWorld.java完成编译,再输

录下均可用到Java的系统资源。

①先配置%JAVA_HOME%环境变量,路径为jdk的目录;配置path环境变量,路径为%JAVA_HOME%\bin;

再配置classpath环境变量,路径为%JAVA_HOME%\jre\lib;

1在JCreator中写出如下代码,并保存为

PublicclassHelloWorld

{

publicstaticvoidmain(String[]args)

{

System.out.println("HelloWorld!

");}

}

2在命令行中进入到该文件路径,并输入

入javaHelloWorld完成运行。

3.用记事本编写包a包b的程序,并用DOS命令行运行。

执行过程:

①将两个记事本,改名为A.java和B.java,并写出如下程序:

A.java文件的源程序:

Packagea;

publicclassA{

publicvoidsay(){

System.out.println("Succeed!

");

}

}

B.java文件中的源程序:

Packageb;

importa.*;

publicclassB{

publicstaticvoidmain(Stringargs[]){Aaa=newA();

aa.maker();

DOS命令行中编译A.java文件,在命令行中输入javacA.java-d.

B.java文件,在命令行中输入javacB.java-d.

五、实验结论、分析、思考题与心得体会

通过本次实验,我有以下几方面的收获、认识和体会:

学会了在记事本和命令行[Creator,等环境下编写程序及运行程序的方法;

学会了如何安装JDK,以及如何配置%JAVA_HOME%,path,classpath等环境变量加深了Java中相关语法的认识:

1文件名必须与Public类的类名相同,并且一个文件中只允许有一个Public类。

2

Java对大小写敏感,如String中的S就严格区分大小写;对中文标点符号和英

文标点符号敏感,java只能识别英文标点符号。

3在用记事本编写包a包b的程序,并用DOS命令行运行时。

要将两个类分别放

在两个文件中,要先编译A.java再编译B.java,在编译时一定要在命令行中输

入javacA.java-.和javacB.java-.才能自动打包;两个文件都编译完成以

后,在命令行的父目录中输入javab.B来执行,输入javab.B.java。

3、思考题

1).什么是JVM,它的作用是什么?

JVM就是java虚拟机的英文简写,java虚拟机就是为任何的平台提供一个编译java

程序的接口。

就是将编译的java程序翻译,以供不同的平台去识别。

2).如何理解PATH和CLASSPATH,,如何设置它们。

PATH和CLASSPATH分别是JavaJDK和JRE的路径。

设置是在计算机属性中的高级

系统设置的环境变量,配置方法如下:

①先配置%JAVA_HOME%环境变量,路径为jdk的目录;

配置path环境变量,路径为%JAVA_HOME%\bin;

③再配置classpath环境变量,路径为%JAVA_HOME%\jre\lib;

《Java技术》实验报告

 

实验二:

2016年10月11日

学院

计算机与信息学院

专业班级

姓名

成绩

课程

名称

Java技术

实验项目名称

实验二类的封装、继承、多态

指导教师

一、实验目的

1.

2.

3.

4.

复习、理解OOP的三大特征一一封装、继承和多态。

学会使用Java编写简单的类。

理解类的属性和方法。

教师签名:

年月

掌握关键字private,protected,public的作用,掌握静态类,内部类的概念。

掌握多态的概念。

二、实验原理

分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求:

(1)Point2D有两个整型成员变量X,y(分别为二维空间的X,Y方向坐标),Point2D的构造

方法要实现对其成员变量X,y的初始化。

(2)Point2D有一个void型成员方法offset。

nta,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,打印出它们

之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印出他们之间的距离。

(提示:

java.lang.Math.sqrt()方法)

 

 

三、使用硬件、软件环境

PC计算机一台,配置为CPU为1.5G,内存为512M硬盘为40G安装WindowsXP操作系统。

另外,使用JCreator

四、实验过程、步骤及原始记录

利用类的继承写一个point2D

JDK160等软件

(算法、原程序、测试结果,分析等)

类,其子类是point3D。

子类Point3D的构造函数调用了父

类的构造函数;计算平面两点的距离函数和计算空间两点的距离函数写在父类

Point2D中,

并且他们是静态方法,在子类继承后,在其主方法(主方法是静态的)中可以直接调用(或

者通过类名调用);另外平移函数可以对点进行平移。

源程序如下:

classPoint2D{

intx,y;

publicPoint2D(intx,inty)//

有参构造函数,对x,y初始化

this.x=x;

this.y=y;

voidoffset(inta,intb)//

平移函数

x=x+a;

y=y+b;

publicstaticdoubledistance2D(Point2Da,Point2Db){return

Math.sqrt(Math.pow((a.x-b.x),2)+Math.pow((a.y-b.y),2));}

//静态方法,求平面两点

的距离

publicstaticdoubledistance3D(Point3Da,Point3Db){return

Math.sqrt(Math.pow((a.x-b.x),2)+Math.pow((a.y-b.y),2)+Math.pow((a.z-b.z),2));}

//静态方法,求空间两点的距离

publicclassPoint3DextendsPoint2D{

int乙

 

 

}

Point3D(intx,inty,intz)//

super(x,y);

this.z=z;

Point3D(Point2Dp,intz)//

super(p.x,p.y);

this.z=z;

voidoffset(inta,intb,intc)//

x+=a;

y+=b;

z+=c;

构造函数,对X,y,z初始化

构造函数,对X,y,z初始化

publicstaticvoidmain(Stringargs[]){

Point2Dp2d仁newPoint2D(10,3);

Point2Dp2d2=newPoint2D(2,2);

平移函数

Point3Dp3d1=newPoint3D(10,11,0);

Point3Dp3d2=newPoint3D(1,6,0);

Point3Dp3d3=newPoint3D(p2d1,16);

System.out.printin("distance2D="+distance2D(p2d1,p2d2));

System.out.printin("distance3D="+distance3D(p3d1,p3d2));

运行结果:

 

nicrosoftUindoMS[朋主6.1.7&01J

版权所有2009MicrosoftCorporation*保留所有权利*

C:

MlEer3\rtdininistratoi'>cddesktovi

C:

Mlsei*s\ftdiiiinistratoi*SfflejavacPointSD-java

C:

Mlaers^driinlstratoi'SDesFtop>javaPoin七3DdistancG2D=8.06225774a2?

a55tlistance3D-10.2?

5630140987

五、实验结论、分析、思考题与心得体会通过本次实验,我有以下几方面的收获、认识和体会:

学会了类的继承、封装、多态的基本应用,学会了两个方法的运用。

加深了Java中相关语法的认识:

1子类继承父类的非私有成员,但是不能继承构造方法,必须用类的构造方法。

2构造方法可以通过形参的个数、类型、排列不同来重载。

3Math类属于java.lang包,并且pow()和sqrt()都是接通过Math.pow()和Math.sqrtO来调用。

①Static静态方法只能直接调用静态成员,不能直接调用非静态成员。

1、

2、

aqrt()和pow()在程序中

super()来调用父

static静态方法,可以直

3、

1)

接口的多种不同的实现方式即为多态。

同一段代码在不同的地方,会执行不同的操作。

思考题

•什么是类的多态性。

《Java技术》实验报告

 

实验三:

2016年10月11日

学院

计算机与信息学院

专业班级

姓名

成绩

课程名称

Java技术

实验项目名称

实验三基于GUI的网络通信程序设计

指导教师

教师签名:

年月日

2•掌握Java的网络通信编程,

3•掌握Java中多线程的编程,

二、实验原理

一、实验目的

1.掌握Java中GUI程序的编写,

包括事件监听机制。

Serversocket,Socket类的使用。

Thread类,Runnable接口的使用。

4•掌握用面向对象的方法分析和解决复杂问题。

编写程序完成以下功能:

1.设计一个基于GUI的客户-服务器的通信应用程序,如图

1,图2所示。

T展务番

图1Socket通信服务器端界面

 

SPflLiS置:

StiverIP;127.00.1

SunreiPt]";4000

ICumlett

biall

'Say;hiall

图2Socket通信客户端界面

2.图1为Socket通信服务器端界面,点击该界面中的【Start】按钮,启动服务器监听服务(在图1界面中间的多行文本区域显示“Serverstarting•字样)。

图2为Socket通信客户端界面,点击该界面中的【ConnecM按钮与服务器建立链接,并在图2所示界面中间的多行文本区域显示“Connecttoserver字样,当服务器端监听到客户端的连接后,在图1界面中间的多行文本区域追加一行

“Clientconnected字样;并与客户端建立Socket连接。

3.当图1所示的服务器端和图2所示的客户机端建立Socket连接后,编程实现这两端的数据通信,每次将接收到对方的数据追加显示在多行文本框中。

三、思考题

1.对整个实验进行总结,写出实验心得。

2.在完成上述实验内容的基础上,尝试实现服务器端能够与多个客户机进行通信。

三、使用硬件、软件环境

PC计算机一台,配置为CPU为1.5G,内存为512M,硬盘为40G,安装WindowsXP操作系统。

另外,使用JCreator,JDK1.6.0等软件

四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)

①分别编写两个文件Client.javaServer.java;这两个代码的结构十分相似,都是先写一个主

类,再写另一个实现类,主类通过创建实现类的对象来调用其构造方法来实现功能。

实现

类中写了很多方法,也写了很多内部类,方法层层调用。

实现类在构造方法中写了调用了

实现GUI的函数,也为按钮注册了监听器。

在不同的内部类中写了不同监听器所调用的

actioPeformed()方法。

 

 

classSayListenimpiementsActionListener{

Stringstr;

publicvoidactionPerformed(ActionEvente){

try{PrintWriterout=newPrintWriter(newBufferedWriter(new

OutputStreamWriter(socket.getOutputStream())),true);

最终转化为PrintWriter

str=cin.getText();

给str

if(!

str.isEmpty()){

out.println(newDate()+"\n"+str);

〃从socket获取字节输出流,并将其

content.append(newDate()+"\nme:

"+str+"\n");

out.flush();

cin.setText("");

catch(Exceptionex){

classClientThreadextendsThread{

publicvoidrun(){

try{

//从文本框中获取字符串赋

//打印日期和str

//清空缓存区

BufferedReaderin=newBufferedReader(new

InputStreamReader(socket.getlnputStream()));//获取socket对象的字节输入流,并将字节流最

终转换为缓冲字符输入流

Stringstr;

while(true){

str=in.readLine();

//System.out.println("\a");

content.append(str+"\n");

//按行读取

//喇叭响一声

//延长字符串

 

五、实验结论、分析、思考题与心得体会

①第一次写这个程序的时候我用的数据报通信Datagramsocket和DatagramPacket来写,结

果发现是UDP通信,发送一个消息只有等到对方回复后才能发送第二个消息,十分不方便。

后来用Socket和ServerSocket来写,对于我这个新手来说更加容易上手。

②因为服务器的GUI界面有start和say按钮,客户端有connect和say按钮,按钮被点击后会触发动作事件,而不同的按钮要执行不同的操作,也就意味着要写多个actionPerformed()方法,可是一个

类里面只能写一个actionPerformed()方法,这可怎么办呢?

后来我上网查阅资料,上网查

看别人写的代码,发现可以写几个实现了ActionListener接口的内部类,在内部类中再写一

个acitionPerformed()方法,这样就写了好几个不同的actionPerformed()方法,在注册

监听器的时候,按钮需要实现哪种功能,就用哪个内部类的对象来监听就可以了。

③在GUI

的设计中设计了三个Panel,用BorderLayout来布局,分为NORTH,CENTER,SOUTH;还特意设置了JSscrollpane滚动条,防止JTextField中的内容超出容量;我也特意设计了双方对话的时间,采用的是打印

④在服务器中创建Serversocket对象来接受客户端的连接请求,并指定端口号,客户端通过

Socket对象来向服务器的ip和端口发送连接请求。

服务器在接到连接请求后,服务器会创

建一个新的Socket对象与客户端的Socket对象连接。

连接成功后通过10流来通信,服务

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1