当前位置:文档之家› JAVA网络编程实验指导书

JAVA网络编程实验指导书

JAVA网络编程实验指导书
JAVA网络编程实验指导书

广州大学计算机科学与教育软件学院

2014年7月

目录

实验一:UDP套接字编程(4学时) (3)

实验二:TCP套接字编程(8学时) (8)

实验三:HTTP协议编程(6学时) (11)

实验一:UDP套接字编程

1、指导思想

UDP协议在IP协议之上添加的功能虽然非常有限,但UDP通信比面向连接的协议更高效,适合每次发送的数据量小,但发送频繁的通信;UDP数据报首部短小,建立和处理首部信息花费的时间短,适合实时或要求延迟非常低的通信;在UDP通信中,一个数据报可以同时发往多个接收者,适合1对多的通信。因此,基于UDP协议的应用仍然非常广泛,需要学生熟练掌握UDP协议应用编程技术。

2、实验目的

通过实验,使学生熟悉UDP协议应用编程范型,掌握Java对UDP协议的支持类,并能熟练运用。

3、相关知识点

3.1UDP协议的特点

在因特网体系结构中,传输层位于网际层和应用层之间。互联网上的任何数据都要经过IP协议进行传输,IP协议是一种无连接和不可靠的协议,它只负责IP数据包在网络中的传输,不进行差错检查,不保证按序到达;同时,由于IP数据包只有IP地址,只能标识通信主机,无法标识源端主机和目标主机上的通信进程。因此,这些在网际层没有实现的功能,必须在传输层实现,以便向应用层提供更高质量的通信服务。

UDP协议是传输层中最简单的协议,主要功能是在网际层之上提供协议端口定义功能,标识源主机和目标主机上的通信进程。UDP数据报的格式如图1所示。

01531 UDP源端口号(16位)UDP目标端口号(16位)

UDP长度(16位)UDP校验和(16位)

数据(必须填充为16的倍数)

图1UDP数据报格式

UDP数据报又叫做用户数据报,有8个字节的固定首部,前4个字节为源端口号和目标端口号,后4个字节为用户数据报长度和校验和字段。

UDP数据报长度字段实际上是不需要的。因为用户数据报要封装在IP数据包中,在IP 数据包首部中有2个字段,一个是IP数据包长度,一个是IP数据包首部长度,两者相减即是UDP数据报长度。这两个字段长度均为16位长,因此,UDP数据报的最大长度为65535-8-20=65507字节,其中,20为IP首部固定字段长度,8为UDP固定首部长度。实际上,许多使用UDP协议的应用协议,发送和接收的数据报的长度远小于65507字节,如DNS 和TFTP的数据报的长度不超过512字节,NFS协议数据报的长度为8,192字节。许多操作系统不支持8k以上的UDP数据报,超过8k字节的数据报,要么截断,要么丢弃,不会通知Java应用程序。

UDP协议在IP协议之上添加的功能非常有限,它是一个无连接的和不可靠的协议,那么,它存在的理由是什么呢?理由如下:

(1)UDP通信比面向连接的协议更高效,适合每次发送的数据量小,但发送频繁的通信。

(2)UDP数据报首部短小,建立和处理首部信息花费的时间短,适合实时或要求

延迟非常低的通信。

(3)在UDP 通信中,一个数据报可以同时发往多个接收者,适合1对多的通信。

(4)在物理网络服务质量高的情况下,可以弥补UDP 协议的不足,实现高效可

靠的通信。

3.2UDP 协议应用编程范型

在UDP 客户/服务器模式应用中,客户端和服务器端的套接字没有本质的差别,只不过服务器端的套接字一般要绑定在一个周知端口上。图2是UDP 客户/服务器模式应用的一般流程图。客户端

服务器端阻塞,直至请求数据报到达

阻塞,直至响应数据报到达

是图2UDP 客户/服务器模式应用的一般流程图

如果客户端发送的请求数据报没有到达服务器,或服务器发回的响应报文不能送达客户端,客户端将一直阻塞。如何处理这种情况呢?方法一是设置最大阻塞时间,超过该时间后抛出异常,客户程序转入异常处理过程。方法二是在客户端除主线程外,将生成并发送请求数据报和接收服务器响应数据报这两个任务分别放在不同的线程中处理。

如果服务器端只有一个线程,当处理请求数据报时,就无法接收新的客户请求数据报。当客户端数量增加时,遗漏客户请求数据报的情况将更加严重。怎么办?同样可以采用多线程编程技术处理。将接收客户请求报文和产生响应报文的任务放在不同现程中实现,一个用于接收客户请求报文,当产生响应报文线程来不及处理时,可以把客户请求报文放在一个队列中,产生响应报文线程处理完毕后,再到队列中取出下一个请求报文处理。如果服务器在启动时,生成多个产生响应报文线程,可以加快服务器的响应速度,这就是线程池技术。

3.3Java 对UDP 协议的支持类

在Java 中,对UDP 协议的支持类是DatagramPacket 类和DatagramSocket 类。在编程中,要将两者结合起来使用才能完成数据报的发送和接收。接收数据报时,应用程序创建DatagramSocket 类的对象绑定到本地端口,创建DatagramPacket 类的对象作为接收数据报的容器,然后调用套接字对象的receive()方法,该方法把UDP 数据报的内容复制到DatagramPacket 类的对象参数中,最后,调用DatagramPacket 类的数据读取方法获取首部信息和数据内容。发送数据时,应用程序可以利用接收数据的套接字来发送数据。首先,将输出数据写入到一字节数组中,利用该数组和接收套接字地址信息创建DatagramPacket 类的对象。然后调用套接字对象的send()方法,发送数据。

创建绑定到临时端口

上的UDP 套接字创建绑定到服务端口上的UDP 套接字

创建请求服务数据

报,并发送给服务器接收服务器端的响

应数据报更多服务?

接收客户端的请求数据报

处理请求,生成响应

数据报,发回客户端

3.3.1DatagramPacket类

在Java中,使用DatagramPacket类的实例作为UDP数据报的容器。DatagramPacket 类声明形式如下:

public final class DatagramPacket extends Object

DatagramPacket类提供了读写源端和目标端IP地址、源端和目标端端口号、数据和数据长度的方法,表1列出了DatagramPacket类的主要方法声明形式及说明。

表1DatagramPacket类的主要方法列表

public DatagramPacket(byte[]buf,int length)

创建一个DatagramPacket对象用来接收UDP数据报,数据存放在buf字节数组下标0—length-1的元素中。如果数据报长度超过length,超过部分不保存。length 必须小于或等于buf的长度,否则,将抛出IllegalArgumentException运行时异常。创建接收数据报的对象

public DatagramPacket(byte[]buf,int offset,intlength)

创建一个DatagramPacket对象用来接收UDP数据报,数据存放在buf字节数组下标offset—offset+length-1的元素中。

public DatagramPacket(byte[]buf,int offset,int length,InetAddress address,int port)创建一个DatagramPacket对象用来发送UDP数据报,数据存放在buf字节数组下标offset—offset+length-1的元素中,发送到IP地址为address的主机port端口上。创建发送数据报的对象

Public DatagramPacket(byte[]buf,int offset,int length,SocketAddress address)throw s SocketException

创建一个DatagramPacket对象用来发送UDP数据报,数据存放在buf字节数组下标offset—offset+length-1的元素中,发送到地址为address的套接字上。

public DatagramPacket(byte[]buf,int length,InetAddress address,int port)创建一个DatagramPacket对象用来发送UDP数据报,数据存放在buf字节数组下标0—length-1的元素中,发送到IP地址为address的主机port端口上。

public InetAddress getAddress()

如果是接收的数据报,则返回源端IP地址;如果是发送的数据报,则返回目标主机的IP地址。数据读取方法

public int getPort()

如果是接收的数据报,则返回源端端口号;如果是发送的数据报,则返回目标

主机上的端口号。

public SocketAddress getSocketAddress()

如果是接收的数据报,则返回源端套接字地址;如果是发送的数据报,则返回

目标的套接字地址。

public byte[]getData()

读出数据报中的数据,数据范围从下标偏移量开始的length长的范围。

public int getOffset()

返回接收或发送数据报中的偏移量大小。

public int getLength()

返回接收或发送数据报的数据长度。

3.3.2DatagramSocket类

在Java中,DatagramPacket类对象表示UDP数据报,该类提供了读写UDP数据报首部字段和数据内容的方法,那么,谁负责发送和接收UDP数据报呢?DatagramSocket类的对

象用来表示UDP套接字,该类用来发送和接收UDP数据报。DatagramSocket类的声明形式如下:

public class DatagramSocket extends Object

所有的数据报套接字都绑定在本地的某个UDP端口上,数据报套接字接收发往本端口的数据报,给发送出去的数据报加上本地端口号。在客户/服务器模式中,客户软件和服务器软件中的UDP套接字没有本质的区别,基本上是一样的。不同的是客户端UDP套接字一般绑定在临时端口号上,服务器端UDP套接字一般绑定在周知端口号上。表2列出了DatagramSocket类的主要方法声明形式及说明。

表2DatagramSocket类的主要方法列表

public DatagramSocket()throws SocketException 创建一个绑定在临时端口号上的UDP套接字对象。构造方法

public DatagramSocket(int port)throws SocketException

创建一个绑定在端口号port上的UDP套接字对象。如果指定端口号port已分配,则抛出SocketException异常,可据此编写扫描本地主机上UDP端口的网络应用程序。public DatagramSocket(SocketAddress bindaddr)throws SocketException

创建一个绑定套接字地址bindaddr上的UDP套接字对象,如果参数bindaddr值为n ull,则创建一个非绑定的套接字。

protected DatagramSocket(DatagramSocketImpl impl)

创建一个使用自定义UDP协议实现inpl类的UDP套接字对象,为非绑定的套接字。

public void receive(DatagramPacket p)throws IOException

接收一个UDP数据报,存储在事先已创建好的DatagramPacket对象P中。该方法将阻塞调用线程,一直到有UDP数据报到达为止。接收方法

public void send(DatagramPacket p)throws IOException 发送已经创建的UDP数据报对象p。发送方法

public void close()

关闭当前UDP套接字,释放占用的端口号。

public void bind(SocketAddress addr)throws SocketException 将创建的非绑定套接字绑定在套接字地址addr上。

public void setData(byte[]buf)

对当前数据报设置新的数据缓冲区,数据报的偏移量为0,长度等于buf.length。数据写入方法。

public void setData(byte[]buf,int offset,int length)

对当前数据报设置新的数据缓冲区,数据报的偏移量为offset,长度等于length。

public void setAddress(InetAddress iaddr)

对当前数据报设置新的接收主机的IP地址。

public void setPort(int iport)

对当前数据报设置新的接收端口号。

public void setSocketAddress(SocketAddress address)

对当前数据报设置新的接收套接字地址。

public void setLength(int length)

对当前数据报设置新的数据长度值length。这个长度必须小于等于数据缓冲器的最

大长度,否则将抛出IllegalArgumentException。

在实际应用中,可以重用已经生成的DatagramPacket对象,不必每次接收或发送数据时都生成新的DatagramPacket对象。通过使用上表中的数据写入方法,可以改变发送的数

据和要接收数据的目标套接字地址,达到重用已经生成的DatagramPacket对象的目的。

4、实验内容

题目一、开发网络会议程序

随着网络技术的普及,网络会议在公司、企业和单位中的应用也越来越广。一个商业网络会议系统通常实现了语音、视频、文字通信、电子白板、电子表决和会议记录等功能。一个网络会议程序通常包括一个服务器程序和一个客户端程序,其中服务器端负责进行用户管理、信息交互、会议记录和表决统计;客户端则实现收听发言,公开发言,私下讨论、投票表决等功能。

使用Java对UDP协议支持的相关类设计开发一个简单的网络会议程序,实现下列功能:(1)文字通信,包括公开发言和私下讨论。

(2)用户管理,包括用户注册、身份验证和注销。

(3)简单的电子白板,能够绘制简单矢量图形。

(4)会议记录,以单个会议为单位记录,注册用户可以查看会议记录。

1-2为必须实现的功能,3-4为选择实现的功能,学有余力的同学还可以增加其他功能。

题目二、开发聊天程序

目前,很多聊天软件有很大的用户群,是因为网络聊天程序具有方便快捷,通信成本又很低等许多优点。

使用Java对UDP协议支持的相关类设计开发一个简单的网络聊天程序,实现下列功能:(1)用户管理,包括用户注册、身份验证和注销。

(2)聊天室管理,包括建立、删除和加入用户等。

(3)文字通信,包括群聊和私聊。

(4)用户聊天记录的保存,以后能够按照日期或好友查看历史记录。

1-3为必须实现的功能,4为选择实现的功能,学有余力的同学还可以增加其他功能。

5、实验步骤

步骤1:需求分析

对所开发的程序要实现的功能进行详细的需求分析。要求只进行功能分析,不进行程序运行性能和安全性等其他非功能性方面的分析。画出系统用例图,对主要用例进行描述。

步骤2:系统设计

画出主要用例的顺序图和系统类图。

步骤3:系统测试

仅限功能测试。对程序实现的每个功能,设想1到3种使用场景,运行程序,检查程序是否实现了预期的功能。

6、实验要求

(1)撰写实验报告,实验报告的主要内容为实验步骤中的结果,按照学院要求的实验报告规范格式撰写。

(2)分组完成,每组两人。

实验二:TCP套接字编程

1、指导思想

TCP协议是传输层中最重要的协议,它能满足应用对网络通信的高质量要求,基于TCP 协议的应用最为广泛,要求学生熟练掌握TCP协议应用编程技术。

2、实验目的

通过实验,使学生熟悉TCP协议应用编程范型,掌握Java对TCP协议的支持类,并能熟练运用。

3、涉及的知识点

3.1TCP协议的特点

TCP协议和UDP协议是因特网体系结构中传输层中的两个协议,与UDP协议相反,TCP 协议在IP协议提供服务的基础上,向应用层提供面向连接的、可靠的和面向数据流的传输服务。应用层的许多协议都借助于TCP协议进行通信,如FTP协议、HTTP协议、SMTP协议、POP3协议和Telnet协议等。TCP协议的主要特点列举如下。

(1)面向连接。两台要通信的主机通过三次握手建立一条连接,相互知道对方的应用进程所在的端口号和双方传输数据的起始序列号。

(2)双向传输。一旦建立连接,通信的双方既可以发送数据,也可以接收数据。

(3)面向字节流的传输。应用进程之间传输的数据可视为无结构的字节流,不必担心数据的分段和重组,这些服务由应用进程所在主机的TCP实体提供。

(4)高可靠性。TCP使用数据发送确认机制来检查数据是否安全和完整的到达。接收方根据收到的报文中的校验和,判断传输的正确性:如果正确,进行应答,否则丢弃报文。发送方如果在规定的时间内未能获得应答报文,自动进行重传。

(5)数据流控制。发送数据的进程不必关心对方的接收能力,也不必关心网络拥塞情况,TCP协议使用滑动窗口和拥塞控制机制保证数据流的平稳传输,保证不丢失数据。

(6)易用性。TCP协议提供了面向连接的和高可靠性的传输服务,使程序员不必在应用程序里面处理可靠性问题;TCP提供面向字节流的通信,与文件输入输出相同,方便了程序员的应用开发。

TCP协议的上述特点,使得TCP协议成为在网络应用编程中使用最多的传输层协议。但上述特点也是有代价的:连接的建立和拆除增加了通信延迟;高可靠性增加了处理负担和通信量。

3.2TCP套接字

在TCP/IP体系结构中,应用层下面的层负责处理与网络通信相关的所有细节问题,而应用层只需专注与具体应用逻辑相关的细节问题。当应用进程需要进行网络通信时,又如何获取传输层所提供的服务呢?套接字充当了应用层与下面的层之间的联系纽带。套接字是一种软件抽象,用于表达两台机器之间的连接端点。套接字对网络应用程序提供了统一的应用编程接口(API),应用程序只需调用套接字API就可完成网络通信,不必关心数据在网络中的传输细节。

TCP/IP的套接字类型有三种:流式套接字(SOCK_STREAM)、数据报套接字(SOCK_DGRAM)和原始套接字(SOCK_RAW)。TCP套接字就是流式套接字,它向网络应用程序封装了本地操作系统的TCP实现;UDP套接字就是数据报套接字,它向网络应用程序封装了本地操作系统

的UDP实现;原始套接字是为不使用TCP和UDP套接字的应用设计的,如基于ICMP协议的应用,它跳过传输层,直接使用IP协议所提供的服务。

TCP套接字应用编程基于客户/服务器模式。服务进程启动时产生一个套接字对象,绑定在本地的一个周知端口上,在这个端口上监听来自客户端的连接请求。一旦监听到客户端的连接请求,服务进程就接受该请求,产生一个新的套接字对象用来与客户端套接字对象建立连接,服务进程和客户进程就可使用该连接进行网络通信,原来的服务器套接字对象仍然在不停地监听新的客户连接请求。

3.3Java对TCP协议的支持类

在TCP套接字应用编程中,需要两种类型的套接字:一种就是在服务器端监听并接受客户连接请求的套接字;另一种就是用于客户进程和服务进程数据传输服务的套接字。Java 提供了这两种类型的TCP套接字的支持,支持第一种类型的套接字就是ServerSocket类,支持第二种类型的套接字就是Socket类。

https://www.doczj.com/doc/e4289262.html,.Socket类的对象代表一个TCP连接两端的套接字,声明形式如下:

public class Socket extends Object

客户端和服务器端使用Socket类对象完成数据通信任务。Socket类屏蔽了TCP协议通信的细节,向程序员提供了字节输入输出流的数据传输形式,程序员不用关心TCP数据报的底层传输问题。

ServerSocket类代表了用在服务器端完成监听并接受客户连接请求的套接字类,因此,这类套接字又称为服务器套接字。ServerSocket类的声明形式如下:

public class ServerSocket extends Object

服务器套接字相当于电话总机接线员,它不断地监听来自客户端的连接请求。如果有客户连接请求到达,服务器套接字就与请求连接的客户端套接字协商初始参数,在服务器端产生一个新的TCP套接字对象与客户端套接字建立连接。然后,服务器套接字就又去监听新的客户连接请求,创建的TCP套接字对象负责与刚才建立连接的客户端套接字完成数据通信任务。

3.4TCP协议应用编程范型

基于TCP通信的应用程序遵循客户/服务器模式,使用Socket类和ServerSocket类就可以开发基于TCP通信的Java网络应用程序。下面分客户端应用程序和服务器端应用程序两个方面介绍应用程序的执行过程。

客户端应用程序的执行过程简述如下:

(1)客户应用程序使用Socket类的构造函数创建一个Socket类的对象,一般使用远程服务器的IP地址和服务端口号为参数。在创建Socket类的对象过程中,将尝试和远程服务器建立TCP连接。如果不能建立连接,将抛出IOException异常;

(2)建立连接后,客户应用程序将调用Socket对象的实例方法public InputStream getInputStream()throws IOException和public OutputStream getOutputStream()throws IOException,得到输入和输出流。使用输入流从服务器应用程序中读入数据,使用输出流向服务器应用程序发送数据。

(3)数据通信完毕,关闭建立的TCP连接。

服务器端应用程序的执行过程简述如下:

(1)服务器应用程序使用ServerSocket类的构造函数创建一个绑定到本地周知端口号的ServerSocket类的对象;

(2)服务器应用程序调用ServerSocket类的accept()实例方法,在服务端口上监听客户的连接请求。当有客户连接请求到达时,接受该请求,返回一个Socket类的对象代表连接的服务器端的套接字。

(3)服务器应用程序调用Socket对象的实例方法public InputStream getInputStream() throws IOException和public OutputStream getOutputStream()throws IOException,得到输入和输出流。使用输入流从客户应用程序中读入数据,使用输出流向客户应用程序发送数据。

(4)数据通信完毕,关闭建立的TCP连接。

4、实验内容

题目一:自拟

结合日常生活和学习中遇到的具体应用需求,或者自己感兴趣的问题,使用Java对TCP 协议的相关支持类,开发相应的网络应用程序。要求不能使用任何标准的应用协议支持类。

题目二:tic-tac-toe

使用Java对TCP协议的相关支持类,开发实现tic-tac-toe游戏的网络程序。

5、实验要求

(1)实验步骤同实验一。

(2)在题目一和题目二中任选一个完成,鼓励自拟题目。

(3)撰写实验报告,实验报告的主要内容为实验步骤中的结果,按照学院要求的实验报告规范格式撰写。

(4)分组完成,每组两人。

实验三:HTTP协议编程

1、指导思想

HTTP协议是当前万维网中使用最广泛的协议,它也是Web服务消息传递的主要传输协议,学生应该熟练掌握该应用协议的编程。

2、实验目的

通过实验,使学生熟悉HTTP协议应用编程范型,并能熟练运用。

3、涉及的知识点

HTTP(Hypertext Transfer Protocol,超文本传输协议),用于从WWW服务器传输超文本到本地浏览器的传输协议。HTTP是Web的核心。HTTP在Web的客户程序和服务器程序中得以实现。运行在不同端系统上的客户程序和服务器程序通过交换HTTP消息彼此交流。HTTP 定义这些消息的结构以及客户和服务器如何交换这些消息。HTTP协议是以TCP/IP为基础的高层协议。现在广泛使用的版本HTTP/1.1。HTTP协议基于请求/响应模式

(Request/Response)。客户与服务器建立连接后,按照协议规定格式,发送请求到服务器,服务器处理请求,将响应信息返回响应信息给客户。

HTTP报文共有两种通用类型:请求报文,响应报文。

(1)请求报文:包括请求行、首部,以及有时出现的主体。

请求行:包括请求类型、空格、URL、空格以及HTTP版本。

请求类型:此字段定义了几种不同方法的报文。

常用的三种请求方法:

GET:当客户要从服务器检索资源时,使用GET请求。GET请求带两个参数:资源的路径及使用的HTTP版本。

HEAD:当客户对有关资源的信息而非资源本身感兴趣时,使用HEAD请求。HEAD请求带的参数与GET请求一样,返回的是带有有关资源信息的普通HTTP相应,这些信息存储在首部域中。

POST:POST请求的首部域后面为实体主体,包含有CGI参数和其他信息。POST请求允许客户向服务器发送的信息要比GET请求所发送的信息多得多。

(2)响应报文:包括状态行、首部、有时包括主体。

状态行:包括HTTP版本、空格、状态码、空格、状态短语。

状态码:1XX系列:提供信息的;

2XX系列:指示成功的请求;

3XX系列:把客户重定向到另一个URL;

4XX系列:指示客户端出错;

5XX系列:指示服务器端出错。

4、实验内容

题目一:Web浏览器

设计开发一个Web浏览器程序,要求实现下列功能:

(1)能够发送GET请求,接收并显示HTML文件。

(2)能够根据网页中的超链接读取新的文件,若不能获取,显示错误原因。

提示:HTML文件的解析和显示使用editorPane类。

题目二:Web服务器

设计开发一个简易的Web服务器程序,要求实现下列功能:

(1)接受并处理GET请求。

(2)发送包含所请求的文件内容的响应信息。

(3)管理员能够远程管理网站资源文件。(选做)

5、实验要求

(1)实验步骤同实验一。

(2)在上述两个题目中任选一个完成,学有余力的同学还可以增加其他功能。

(3)撰写实验报告,实验报告的主要内容为实验步骤中的结果,按照学院要求的实验报告规范格式撰写。

(4)分组完成,每组两人。

JAVA实验指导书 作业

第Ⅰ部分:实验指导 实验1:Java开发环境J2SE 一、实验目的 (1)学习从网络上下载并安装J2SE开发工具。 (2)学习编写简单的Java Application程序. (3)了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。 二、实验任务 从网络上下载或从CD-ROM直接安装J2SE开发工具,编写简单的Java Application程序,编译并运行这个程序。 三、实验内容 1.安装J2SE开发工具 Sun公司为所有的java程序员提供了一套免费的java开发和运行环境,取名为Java 2 SDK,可以从https://www.doczj.com/doc/e4289262.html,上进行下载。安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到C:\j2sdk1.4.1_03目录下。教师通过大屏幕演示J2SE的安装过程,以及在Windows98/2000/2003下环境变量的设置方法。 2.安装J2SE源代码编辑工具Edit Plus 教师通过大屏幕演示Edit Plus的安装过程,以及在Windows98/2000/2003操作系统环境下编辑Java原程序的常用命令的用法。 3.编写并编译、运行一个Java Application程序。 创建一个名为HelloWorldApp的java Application程序,在屏幕上简单的显示一句话"老师,你好!"。 4.编译并运行下面的Java Application程序,写出运行结果。 1:public class MyClass { 2:private int day; 3:private int month;

4:private int year; 5:public MyClass() { 6:day = 1; 7:month = 1; 8:year = 1900; 9:} 10:public MyClass(int d,int m,int y) { 11:day = d; 12:month = m; 13:year = y; 14:} 15:public void display(){ 16:System.out.println(day + "-" + month + "-" + year); 17:} 18:public static void main(String args[ ]) { 19:MyClass m1 = new MyClass(); 20:MyClass m2 = new MyClass(25,12,2001); 21:m1.display(); 22:m2.display(); 23:} 24:}

《Java程序设计》实验指导书_2015

《Java程序设计》实验指导书 实验一Java开发环境的安装与配置 一、实验目的 1.掌握JDK的安装步骤(有条件的话可以在Unix系统下安装)。 2.理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法(Win XP、 WIN7、WIN8、Linux下的不同设置方法)。 3.熟悉TextPad(或JCreator)编辑环境,编写简单的Application程序,并编 译和解释执行。 4.记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。 二、实验内容 1.下载安装新版本的JDK。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Textpad(或JCreator)环境下编写一个HelloWorld.java程序,在DOS 提示符下编译并执行这个程序。 4.编写一个类A,它位于包a中,保存到A.java中,再编写一个类B,它位于包b中,保存到B.java中。在类B中实例化类A的一个对象。分别编译类A和类B。 5.实验时,在计算机中建立分别如下目录:D:\学号\src和D:\学号\class,分别用来放置Java源文件和编译后的字节吗文件(注:每位同学分别用自己的学号建立目录)。 三、思考题 1.什么是JVM,它的作用是什么? 2. 如何理解PATH和CLASSPATH,如何设置它们。

实验二类的封装、继承、多态 一、实验目的 1.复习、理解OOP的三大特征——封装、继承和多态。 2.学会使用Java编写简单的类。理解类的属性和方法。 3.掌握关键字private, protected, public的作用,掌握静态类,内部类的概念。 4.掌握多态的概念。 二、实验内容 1.分别编写两个类Point2D,Point3D来表示二维空间和三维空间的点,使之满足下列要求: (1)Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。 (2)Point2D有一个void型成员方法offset(int a, int b),它可以实现Point2D 的平移。 (3)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。 (4)Point3D有一个void型成员方法offset(int a, int b,int c),该方法可以实现Point3D的平移。 (5)在Point3D中的主函数main()中实例化两个Point2D的对象p2d1,p2d2,打印出它们之间的距离,再实例化两个Point3D的对象p3d1,p3d2,打印 出他们之间的距离。 提示:https://www.doczj.com/doc/e4289262.html,ng.Math.sqrt()方法 2.创建一个数组,随机生成Point2D或者Point3D的对象放于其中。最后依次调用数组中每个对象的“打印方法”,显示数组中存储的对象是什么。 提示:https://www.doczj.com/doc/e4289262.html,ng.Math.random()方法或者java.util.Random类 三、思考题 1.什么是类的多态性。

Java实验指导书

《Java程序设计》课程实验指导书软件学院网络工程系

实验一 Java开发环境的安装与配置,熟悉Java程序 结构 一、实验目的: 1. 掌握JDK的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及它们的设置方法。 3. 熟悉Editplus(或TextPad,JCreator)编辑环境,编写简单的 Application程序和Applet程序,并编译和执行。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序和Applet程序(能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调试程序、编译,运行后得到正确的结果 4. 写出实验报告,要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1.从https://www.doczj.com/doc/e4289262.html, 上下载最新版本的JDK,并安装。 2.设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3.在Editplus(或JCreator ,Textpad)环境下编写一个HelloWorld.jav a程序, (1)在主方法static public void main(String[ ] args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序) 4.在Editplus(或JCreator ,Textpad)环境下编写一个 HelloWorldApplet.java程序。 (1)在public void paint(Graphics g)方法中调用g.drawString()方法,使

《java程序设计》实验指导书(完整)

实验一 Java实验环境的建立一、实验目的 1.掌握Java编程环境的搭建过程; 2.掌握Jcreator pro软件的使用方法; 3.能使用Java doc文档。 二、实验内容 1.下载并安装,配置JDK环境变量; 2.下载Javadoc压缩包并解压在JDK安装路径下; 3.下载Jcreator pro 并安装和配置使用环境; 4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。 ①Java application程序代码如下: public class HelloJava { public static void main(String args[]) { "Hello Java!"); } } ②Java applet程序代码如下: import .*; public class Hello extends { public void paint(Graphics g) { ("Hello!",30,30); } } 三、试验要求 1、预习试验内容并写出上机报告。 2、实验中出现的问题及实验体会。

一、实验目的: 1.输入、输出操作实现原理和方法 2.掌握程序流程控制的实现方法 3.掌握数组的定义和操作方法 二、实验内容 1.计算 Result=1!+2!+3!+ (10) public class TestJieC{ p ublic static void main(String arg[]){ long result=1; for(int i=1;i<=10;i++) { result=i*result; result+=result; } " "+result); } } 2.计算1---50之间所有素数的和。 public class Test{ p ublic static void main(String args[]){ int count = 0; for(int i = 2;i<=50;i++){ for(int j = 2;j<=i;j++){ if(i>j){ if(i%j == 0){ count++; } } } if(count==0){

java实验指导书

实验指导书 (实验报告书写规范) 1.拿到实验报告后,先填写封面: 2012-2013学年第一学期 实验室名称:兰州工业学院计算机一体化教室 课程名称:《Java语言程序设计》 指导教师:杜叔强 学号:(只写后2位) 2.接着填写目录,即实验项目名称 3.下面是每次做实验后应完成的内容: 每一页正文最上边写上实验时间:(例如:2011-9-22)同组者:(这个不用填写)实验题目: 一、实验目的 二、实验环境:JDK 三、实验内容 四、实验结果 说明:实验结果中给出主要代码及运行数据和结果,每次实验报告3-4页 五、实验总结: 4.其他要求 每个实验项目另起一页!!!! 实验报告册使用黄色厚本规格!!!

(学校规定,十个学时以上实验用厚本,十个学时以内用薄本。)

实验一熟悉Java运行环境 一、实验目的 1.熟悉JDK开发环境 2.了解Java Application的程序结构和开发过程 3.了解Java Applet程序的开发过程并编写第一个Java Applet程序 4.学习编写简单的HTML文件配合Java Applet使用 二、实验环境:JDK1.5 三、实验内容 四、实验结果 五、实验总结:

实验二 Java的基本数据类型 一、实验目的 1.熟悉Java的基本数据类型; 2.会准确操作字符型类型,并掌握强制转换的操作; 二、实验环境与地点 1.实验环境: JDK1.6+Ultraedit 2.实验地点: 软件工程系一体化教室 三、实验内容与步骤 1. 定义一个类,类中包含主程序,在主程序中进行如下定义: (1)定义一个常量,名称为MAXVALUE,赋值为1000; (2)定义一个变量,名称为maxValue,赋值为500; 2. System.out.println(“你好”);可输出字符串,也可以使用System.out.println( )输出变量或表达式的值,只需使用并置符号“+”将变量、表达式或一个常数值与一个字符串并置即可,如: System.out.println(“”+x);System.out.println(“:”+123+“大于”+122);等。上机调试下列程序,注意观察结果,特别注意System.out.print( )和System.out.println( )的区别。 public class OutputData { public static void main(String args[]) { int x=234,y=432; System.out.println(x+"<"+(2*x)); System.out.print("我输出结果后不回车"); System.out.println("我输出结果后自动回车到下一行"); System.out.println("x+y= "+(x+y)); System.out.println(" "+x+y+"=234432"); }} 3. 定义一个类,其中包含主程序,在主程序中进行如下操作: (1)输出‘h’+1; (2)输出‘7’+1; 4. 定义一个类,在主程序中加入如下语句: int x = 8; byte b = 127; b = x;

java实验指导书 学生用李伟

实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习 实验三、面向对象编程实验(4) 实验四、异常处理实验 实验五、小应用程序实验 实验六、图形图像实验 实验七、GUI(图形用户接口)实验(4) 实验八、多线程实验 实验九、输入输出流实验(4) 实验十、数据库应用实验(4)

实验一、安装JDK并熟悉java的运行环境 一、实验目的 熟悉JA V A的运行环境及学习简单的编程。 二、预习内容 安装工具软件的基本方法。 三、实验设备与环境 装有JA V A语言工具软件(Eclipse )的微机若干 四、实验内容 安装Eclipse及JA V A的核心编译程序J2SDK。 1、打开Eclipse的安装盘安装Eclipse。 2、在相同目录下安装J2SDK。 3、打开Eclipse软件对J2SDK文件进行配置。 4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。 Pulic class Hello { public static void main(String args[]) { //在屏幕上显示“HELLO WORLD”和爱心标志 } } 5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。 实验结果 五、注意事项 ⒈认真填写实验报告 ⒉遵守实验室各项制度,服从实验指导教师的安排 ⒊按规定的时间完成实验 六、说明 本次实验建议学时数2学时 七、实验总结与体会

实验二、基本语法练习 一、实验目的 ⒈熟悉Java的基本语法 ⒉编写应用程序接收命令行参数 ⒊编写应用程序接收用户从键盘的输入 ⒋掌握字符串与数组的基本方法 二、预习内容 java编程的基本结构 三、实验设备与环境 装有JA V A语言工具软件(Eclipse )的微机若干 四、实验内容 ⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。 (1)编辑Average.java。 class Average { public static void main(String args[ ]) { double n,sun=0; for (int l=0;l

Java 2实用教程(第三版)实验指导与习题解答

Java 2实用教程(第三版)实验指导与习题解答 清华大学出版社 (编著耿祥义张跃平) 实验模版代码及答案 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

上机实践1 初识JA V A (4) 实验1一个简单的应用程序 (4) 实验2一个简单的J A V A A PPLET程序 (4) 实验3联合编译 (5) 上机实践2 基本数据类型与控制语句 (6) 实验1输出希腊字母表 (6) 实验2回文数 (7) 实验3猜数字游戏 (9) 上机实践3 类与对象 (10) 实验1三角形、梯形和圆形的类封装 (10) 实验2实例成员与类成员 (13) 实验3使用PACKAGE语句与IMPORT语句 (15) 上机实践4 继承与接口 (17) 实验1继承 (17) 实验2上转型对象 (20) 实验3接口回调 (22) 上机实践5 字符串、时间与数字 (24) 实验1S TRING类的常用方法 (24) 实验2比较日期的大小 (25) 实验3处理大整数 (26) 上机实践6 组件及事件处理 (27) 实验1算术测试 (27) 实验2信号灯 (30) 实验3布局与日历 (32) 上机实践7 组件及事件处理2 (36) 实验1方程求根 (36) 实验2字体对话框 (39) 实验3英语单词拼写训练 (42) 上机实践8 多线程 (46) 实验1汉字打字练习 (46) 实验2旋转的行星 (48) 实验3双线程接力 (52) 上机实践9 输入输出流 (55) 实验1学读汉字 (55) 实验2统计英文单词字 (58) 实验2读取Z IP文件 (62)

上机实践10 JAV A 中的网络编程 (63) 实验1读取服务器端文件 (63) 实验2使用套接字读取服务器端对象 (65) 实验3基于UDP的图像传输 (68) 上机实践11 数据结构 (72) 实验1扫雷小游戏 (72) 实验2排序与查找 (77) 实验3使用T REE S ET排序 (78) 上机实践12 JAV A SWING (80) 实验1JL AYERED P ANE分层窗格 (80) 实验2使用表格显示日历 (81) 实验3多文档界面(MDI) (84)

java实验指导书

实验一熟悉Java程序开发环境 一、实验目的及要求 (1)了解和使用j2sdk1.6.0(JDK)。 (2)熟悉JDK集成环境的基本命令、功能和基本用法,并学会配置PATH等环境变量。 (3)学习并熟练掌握使用JDK环境进行Java程序开发的全过程(包括:源程序的编辑、编译、调试、运行和结果查看)。 二、实验学时 6学时 三、实验任务 (1)安装j2sdk1.6.0,设置环境变量PATH和CLASSPATH。 1)下载JDK 为了建立基于SDK的java运行环境,需要先下载sun的免费SDK软件包。SDK包含了一整套开发工具,其中包含对编程最有用的是Java编译器、Applet查看器和Java解释器。在浏览器中输入https://www.doczj.com/doc/e4289262.html,进入sun公司官方网站页面。在页面右边“Popular Downloads”栏中可看到最新版的JDK软件包(JDK1.6),并下载。 2)安装SDK 运行下载的“jdk-6u1-windows-i586-p.exe”软件包,在安装过程中可以设置安装路径及选择组件,默认的组件选择是全部安装,安装成功后,其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,demo文件夹中包含开源代码程序实例。 3)JDK中主要文件夹和文件 安装成功后,d:\java\jdk1.6中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、Applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发Java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。 设置环境变量 JDK中的工具都是命令行工具,需要从命令行即MS-DOS提示符下运行它们。以Windows XP 为例说明设置过程。 右击桌面“我的电脑”图标,选择“属性”菜单

java实验报告实验3答案

实验三熟悉常用java工具包并运用编程 实验目的: 本实验旨在巩固同学们对上课所讲java.util工具包中Collection,List,Set,Map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。 实验内容: 本实验的内容为:用Collection,List,Set,Map来存储数据,并进行排序,任何用Iterator,ListIterator或者Enumeration来打印其结果(按顺序和降序排列打印)。共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。。): (1)按顺序把1,10,5,7,6,2,9,20,14,存入到List中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。然后再向List中位置为第四位插入数35看看会有啥结果?再向List中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥? 程序: import java.util.*; public class SY3 { public SY3() { List list=new ArrayList(); list.add(1); list.add(10); list.add(5); list.add(7); list.add(6); list.add(2); list.add(9); list.add(20); list.add(14); list.add(35); list.add("ddy"); System.out.println("原序列:"); for(int i=0;i<=list.size()-1;i++) { System.out.println(list.get(i)); } System.out.println("新序列"); for(int i=0;i<=list.size()-1;i++) {

java实验指导书

实验一java开发环境及语言基础 实验目的 (1)确保正确配置java开发环境。 (2)了解javac和java命令的使用。 (3)熟悉java中的运算符。 (4)掌握条件语句和循环语句的使用。 (5)掌握通过命令行参数接受数据。 (6)掌握用Scanner类接受数据。 实验内容 (1)在控制台中输入java命令,查看输入结果。 (2)编写一个java程序,计算半径为3.0的圆周长和面积并输出结果。 (3)求a+aa+aaa+...+a...a(n个)的和,其中a为1~9之间的整数。例如,当a=3、n=4时,求3+33+333+3333的和。 (4)给定一个正整数m,统计其位数,分别打印每一位数字,再按照逆序打印出各位数字。(5)用Scanner类方法输入三角形三边求三角形面积。 实验要求 (1)JDK的安装及配置。 (2)在DOS及eclipse下编辑、编译运行第一个java程序:hello world。 (3)求圆周长和面积用方法实现,主函数调用。 (4)从命令行输入1~9之间的整数a,当所求的和大与106时,输出相应的a值及所求的和值。 (5)用Scanner类的方法输入正整数m,m的值不应该超过99999,否则给出错误信息。应引入包:import java.util.Scanner,然后在需要的方法中实例化对象:Scanner sc = new Scanner(System.in),最后调用对象的next方法,如int n=nextInt(),接受整数。 实验二数组 实验目的 (1)掌握数组的定义和使用方法。 (2)熟悉数组的排序、查找的方法。 (3)巩固循环的使用。 实验内容 (1)使用for循环,将二维数组的行与列互换,即完成矩阵的转置。 (2)编写数组的排序程序。 (3)编写杨辉三角。 实验要求 (1)编写一个界面1 选择排序2 冒泡排序3插入排序4 快速排序5 退出 当选择1、2、3、4、5的时候完成相应的功能。 (2)杨辉三角形状为等腰三角形 实验三字符串 实验目的 (1)掌握正则表达式的使用。 (2)熟悉java的字符串。

……java训练题二答案

训练题二 一、选择题 1.下列哪种类成员修饰符的变量只能在本类中被访问?( D ) A. protected B. public C. default D. private 2.在java语言的哪一个包是编译器自动导入的?( A ) A. https://www.doczj.com/doc/e4289262.html,ng B. java.awt C. jva.io D. java.applet 3.给出下面的程序代码: class Test3{ private float a; public static void m() { // … } } 如何使成员变量a被方法m()直接访问?( C ) A.将private float a改为protected float a B.将private float a改为public float a C.将private float a改为static float a D.将private float a改为float a 4.已知有下面的类说明: public class Test4 { private float f=1.0f;. int m=12; static int n=1; public static void main(String[] args) { Test4 e=new Test4(); } } 在main()方法中,下面哪个的使用是正确的( A )? A. e.f B. this.n C. Test4.m D. Test4.f 5.有一个类A,下面为其构造函数的声明,其中正确的是( B )。 A. void A(int x){ … } B. A(int x) { … } C. a(int x){ … } D. void a(int x){ … } 6.在下面的程序源代码文件Test6.java中,哪个是正确的类的定义?( B ) A.public class test6{ B. public class Test6{ public int x=0; public int x=0; public test(int x) public Test6(int x) { this.x=x; { this.x=x; } } } } B.class T1{ } D. class T2{ } class T2{ } protected class Test6 extends T2 public class Test6 extends T1, T2 { public int x=0; { public int x=0; public Test6(int x)

《java程序设计》实验指导书(完整)

实验一 Java实验环境的建立 一、实验目的 1.掌握Java编程环境的搭建过程; 2.掌握Jcreator pro软件的使用方法; 3.能使用Java doc文档。 二、实验内容 1.下载并安装JDK1、6,配置JDK环境变量; 2.下载Javadoc压缩包并解压在JDK安装路径下; 3.下载Jcreator pro 4、0并安装与配置使用环境; 4.使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。 ①Java application程序代码如下: public class HelloJava { public static void main(String args[]) { System、out、println("Hello Java!"); } } ②Java applet程序代码如下: import java、awt、*; public class Hello extends java、applet、Applet { public void paint(Graphics g) { g、drawString("Hello!",30,30); } } 三、试验要求 1、预习试验内容并写出上机报告。 2、实验中出现的问题及实验体会。 实验二 Java语言程序设计训练 一、实验目的: 1.输入、输出操作实现原理与方法 2.掌握程序流程控制的实现方法 3.掌握数组的定义与操作方法 二、实验内容 1、计算 Result=1!+2!+3!+ (10) public class TestJieC{ public static void main(String arg[]){ long result=1;

java实验指导书

面向对象程序设计实验指导书 肖磊、宋鸿陟、彭红星 2012-10

目录 实验1 猜数字游戏 (3) 实验2 发牌游戏 (2) 实验3实现一个圆类 (3) 实验4 Java源代码分析程序 (4) 实验5 银行账户存取款业务 (5) 实验6 深克隆的House类 (6) 实验7 计算多个二维图形的面积之和 (7) 实验8学生成绩分析程序 (8)

实验1 猜数字游戏 实验类型:验证性 实验目的:掌握Java语言数据类型、基本输入输出、控制语句和方法的使用。 实验内容: 编写程序,项目名与类名均为GuessNumberGame。 每次游戏程序随机产生一个0-9之间的整数,要求玩家输入自己猜的数字,并对用户输入数字进行检查,进行如下提示: ?如果用户猜对了,则提示:恭喜你,猜对了。结束本次游戏。 ?如果用户猜错了,则提示:你猜的数字太(大或小)了。要求用户继续猜。 如果连续3次没有猜对,则提示:游戏失败。 一次游戏结束时,提示用户是否继续新的游戏,果用户选择继续,则开始新一次游戏,否则输出:你共进行了XXX次游戏,成功XXX次,失败XXX次。然后结束程序运行。 提交要求:打包为可以执行的JAR文档,其中要包含源程序文件。

实验2 发牌游戏 实验类型:验证性 实验目的:掌握Java数组、方法、类的基本定义。 实验内容: 编写程序,项目名和类名均为PokerGame。 描述: 共有1幅扑克牌,不包括大王和小王共52张牌。 可能有n个人参与扑克游戏,2<=n<=6。 程序运行时输入n,然后52张牌分别依次分发给n个人。不能整除时,每个人的牌数可以不同,如3个人,则第1个人18张,第2个和第3个人17张牌。 发牌完成后按花色(顺序为黑桃、红心、草花、方块)和牌面大小输出每个人得到的牌。 例如: 输入人数:3 输出如下: 第1个人: 黑桃:K 10 5A 红心:10 3 2 草花:K 10 8 6 3 A 方块:Q J 5 2 第2个人: ....... 第3个人: ...... 要求: (1)使用数组存放发牌情况。 (2)编写不同方法完成不同功能。 提交要求:打包为可以执行的JAR文档,其中要包含源程序文件。

java实验报告实验2答案

实验二熟悉Applet,GUI编程 实验目的: 本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。 实验内容: 创建一个java项目,命名为experiment2。(如何创建项目参考《实验一》的项目创建方法。) (一)创建图形用户界面 图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。通过容器的add方法把组件加入到容器中。 1.在Applet中添加标签、按钮并使用网格布局 (1)程序功能 在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。(2)编写LX6_1.java 程序文件,源代码如下: import java.awt.*; import java.applet.Applet; public class LX6_1 extends Applet { Label l1; Button b1, b2, b3, b4, b5, b6; public void init() {

Java2实用教程(第4版)实验指导与习题解答_IT168文库(精)

上机实践1初识Java 实验1一个简单的应用程序 1.相关知识点 Java语言的出现是源于对独立于平台语言的需要,即这种语言编写的程序不会因为芯片的变化而发生无法运行或出现运行错误的情况。目前,随着网络的迅速发展,Java语言的优势越发明显,Java已经成为网络时代最重要的语言之一。 Sun公司要实现“编写一次,到处运行”(Write once,run anywhere的目标,就必须提供相应的Java运行平台,目前Java运行平台主要分为下列3个版本。 (1Java SE:称为Java标准版或Java 标准平台。Java SE 提供了标准的JDK开发平台。利用该平台可以开发Java桌面应用程序和低端的服务器应用程序,也可以开发Java Applet 程序。当前成熟的新的JDK版本为JDK 1.6。 (2Java EE:称为Java企业版或Java企业平台。使用J2EE可以构建企业级的服务应用,Java EE平台包含了Java SE平台,并增加了附加类库,以便支持目录管理、交易管理和企业级消息处理等功能。 (3Java ME:称为Java微型版或Java小型平台。Java ME是一种很小的Java运行环境,用于嵌入式的消费产品中,如移动电话、掌上电脑或其他无线设备等。 无论上述哪种Java运行平台都包括了相应的Java虚拟机(Java Virtual Machine,虚拟机负责将字节码文件(包括程序使用的类库中的字节码加载到内存,然后采用解释方式来执行字节码文件,即根据相应硬件的机器指令翻译一句执行一句。J2SE平台是学习掌握Java语言的最佳平台,而掌握J2SE又是进一步学习J2EE和J2ME所必需的。 2.实验目的

Java实验指导书答案 2

山东建筑大学实验报告 课程:Java面向对象程序设计语言 院(部):商学院 专业:电子商务 班级: 学生姓名: 学号: 指导教师:陈明志 完成时间:2014年6月

目录 实验一:JDK安装与配置 (3) 实验二:Java基本语法练习 (4) 实验三:数组和字符串练习 (6) 实验四:类和对象程序设计 (10) 实验五:接口、内部类与包练习 (15) 实验六:图形界面设计 (17) 实验七:线程设计 (18) 实验八:输入输出流设计 (19) 实验九:Applet编程 (20) 实验十:网络程序设计 (20)

实验一:JDK安装与配置 一、实验目的及任务 熟悉Java开发环境JDK,下载并安装JDK软件,熟悉JDK配置环境,掌握在JDK环境中编辑、编译和运行程序的操作。 二、实验环境 与因特网连接的计算机网络系统;主机操作系统为Windows2000或Windows XP。 三、实验步骤 1、从网上下载最新JDK开发包,并对其进行安装,并配置JDK的path和classpath 环境变量。 2、从网上下载JDK相应的帮助文档,解压该文档并熟悉该文档使用。 3、下载UltraEdit或者TextPad、EditPlus,并安装你所下载的软件,熟悉该软件的编辑环境。 4、使用你所下载的编辑软件,编写如下程序: public class Hello{ public static void main(String args[]){ System.out.println(“Hello”); } } 并将该程序保存为Hello.java文件,保存到d:\myjava目录下。 5、对上述编写的程序进行编译和运行,在实验报告纸上写明编译和运行的过程,以及最后所运行的结果。 四、实验报告内容 1、在实验报告纸上写明下载的JDK版本名称,下载JDK的网址,以及所配置的path和classpath环境变量。 2、在实验报告纸上写明Java程序编译和运行的过程,以及步骤4的最后所运行的结果。

java语言程序设计实验指导书

《Java语言》实验指导书(12课时版) 实验一 Java开发环境 一、实验目的: 1、熟悉JAVA开发环境(JBUILDER/JDK) 2、认识Java程序结构。 二、实验内容: 1、配置JDK,编译调试HelloWorld程序。 2、熟悉JAVA开发工具,编译调试HelloWorld程序。 三、实验要求: 1、HelloWorld程序输出一条简单的问候信息; 2、实验报告中对程序结构做出详细的解释; 3、实验报告中给出配置JDK的步骤。 四、实验学时:2学时 五、实验步骤: 1、进入Java编程环境; 2、新建一个Java文件,命名为HelloWorld.java; 3、定义主方法public static void main(String[ ] args);调用System.out.println()方法,使 程序输出一条问候信息; 4、编译运行程序,观察运行情况和输出结果。(如果使用JDK环境,调用javac.exe 和java.exe编译和执行程序) 实验二类与对象 一、实验目的: 1、掌握类的定义与成员的封装。 2、掌握对象的创建,对象属性的访问和方法的调用。 二、实验内容: 1、自定义一个学生类。 2、导入并访问其他同学定义的学生类。 三、实验要求: 1、实验报告给出源代码。 2、实验报告中记录访问不同属性时编译器的反馈并分析原因。

四、实验学时:2学时 五、实验步骤: 1、定义一个学生类,包含三个属性学号、姓名和性别,访问修饰符分别是private、无修饰符和public修饰符。 2、在另一个类中创建学生类的对象,分别设置三个属性的值,观察实验结果。 3、导入同学定义的学生类。分别访问三个属性,观察实验结果。 实验三数据类型与数组 一、实验目的: 1、掌握数据类型与数组的定义、初始化与使用。 二、实验内容: 1、转置二维矩阵。 三、实验要求: 1、使用已知给定的数值初始化一个5X5的二维数组。 2、每次打印都应该按照从上到下从左到右的顺序。 3、实验报告给出完整代码。 四、实验学时:2学时 五、实验步骤: 1、用任意的23个整数初始化一个5X5的二维int类型数组,并逐行打印。 2、交换沿对角线上对称的元素,并打印转置后的矩阵。 实验四流程控制 一、实验目的: 1、掌握分支、循环语句的使用。 二、实验内容: 1、用循环语句打印一个99乘法表。 2、判断回文数(逆序排列后得到的数和原数相同)。 三、实验要求: 1、打印的乘法表应该呈现阶梯状。 2、给定一个1-99999之间的数,程序可以判断它的位数,并判断是否是回文数。 3、实验报告给出完整代码。 四、实验学时:2学时 五、实验步骤: 1、用循环语句打印一个99乘法表。 2、将一个5位以内的数按位逐个取出,分别存入5个变量中。 3、根据原始数的长度对取出的5个变量分别进行判断,以确定原始数是否是个回文

Java实验指导书24

《Java程序设计》实验指导书 实验1 JDK的使用 实验序号:1 实验名称:JDK的使用 适用专业:计算机科学与技术学时数:6学时 一、实验目的 (1)熟练掌握JDK编写调试Java应用程序及Java小程序的方法。 (2)熟练掌握Java应用程序的结构。 (3)了解Java语言的特点,基本语句、运算符及表达式的使用方法。 (4)熟练掌握常见数据类型的使用。 (5)熟练掌握if-else、switch、while、do-while、for、continue、break、return 语句的使用方法。 (6)熟练掌握数组和字符串的使用。 二、实验要求 (1)调试程序要记录调试过程中出现的问题及解决办法; (2)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (3)做完实验后给出本实验的实验报告。 三、实验设备、环境 奔腾以上计算机,Windows 2000 、JDK、IE浏览器 四、实验步骤及内容 (1)使用JDK和MyEclipse编译运行Java应用程序;适当添加注释信息,通过javadoc 生成注释文档;通过命令行参数传递“Hello world”字符串,并输出,通过JDK和MyEclipse编译运行。记录操作过程。 public class Hello { public static void main(String args[]) { System.out.println("Hello!"); } } (2)使用JDK和MyEclipse编译Java Applet,并建立HTML文档运行该Applet.打包mypackage,并压缩生成".jar"文件。记录操作过程。 import java.awt.*; import java.applet.Applet; public class HelloApplet extends Applet {

java程序设计实验指导书答案

java程序设计实验指导书答案 【篇一:java程序设计实验指导书】 =txt>一、实验目的及要求 1. 安装并配置java运行开发环境; 2. 掌握开发java应用程序的3个步骤:编写源文件、编译源文件和运行应用程序; 3. 学习同时编译多个java源文件; 4. 掌握char型数据和int型数据之间的相互转换,同时了解 unicode字符表; 5. 掌握使用if…else分支和while循环语句解决问题。 二、实验学时 6学时 三、实验任务 1.安装jdk,设置环境变量path和classpath。 1)下载jdk 2)安装jdk 运行下载的“jdk-6u1-windows-i586-p.exe”软件包,在安装过程中 可以设置安装路径及选择组件,默认的组件选择是全部安装,安装 成功后,其中bin文件夹中包含编译器(javac.exe)、解释器(java.exe)、applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类库以便开发java程序使用,demo文件 夹中包含开源代码程序实例。 3)jdk中主要文件夹和文件 安装成功后,d:\java\jdk1.6中bin文件夹中包含编译器 (javac.exe)、解释器(java.exe)、applet查看器(appletviewer.exe)等可执行文件,lib文件夹中包含了所有的类 库以便开发java程序使用,sample文件夹包含开源代码程序实例,src压缩文件中包含类库开源代码。 设置环境变量 jdk中的工具都是命令行工具,需要从命令行即ms-dos提示符下 运行它们。以windows xp为例说明设置过程。 右击桌面“我的电脑”图标,选择“属性”菜单 在“高级”选项卡中单击“环境变量”按钮,将出现“环境变量”设置界 面

相关主题
文本预览
相关文档 最新文档