Java程序设计实验指导书.doc_第1页
Java程序设计实验指导书.doc_第2页
Java程序设计实验指导书.doc_第3页
Java程序设计实验指导书.doc_第4页
Java程序设计实验指导书.doc_第5页
免费预览已结束,剩余23页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计实验指导书2010年9月信息工程学院 计算机系 侯向华目录实验一 熟悉java程序的编辑、编译和运行过程3实验二 Java语言程序设计基础训练5实验三 类的封装性和继承性设计7实验四 设计实现接口的类10实验五 异常处理12实验六 图形用户界面设计14实验七 Applet应用程序设计15实验八 输入/输出流和文件操作17附录:20Java Learning Path (一)、工具篇20Java Learning Path(二)、书籍篇22Java Learning Path(三)过程篇23Java Learning Path(四) 方法篇25Java Learning Path(五)资源篇26实验安排:实验一熟悉java的编程环境 2实验二java语言基础 2实验三类的设计与使用 4实验四设计实现接口的类 2实验五异常处理 2实验六图形用户界面设计 4实验七Applet应用程序设计 2实验一 熟悉java的编程环境一、 实验目的1. 了解和使用J2sdk1.5.0(JDK)集成环境。2. 了解和掌握JCREATOR集成环境的安装,简单应用。3. 了解Java Application和Applet程序的基本结构。4. 了解Java程序文件名和类名的说明方法。二、 实验内容与要求1、 输入一个Application源程序,学习编辑、编译、运行程序的方法。/例1-1 文件HelloWorldApp.java如下:/ HelloWorldApp.javapublic class HelloWorldApp public static void main(String args)System.out.println(Hello World!);本程序的作用是输出下面一行信息:Hello World!请在jcreator中运行该程序。2、输入一个applet源程序,学习编辑、编译、运行程序的方法。 简单的Applet小程序例1-2 / HelloWorldApplet.javaimport java.awt.*;import java.applet.*;public class HelloWorldApplet extends Applet /anappletpublic void paint(Graphics g)g.drawString(Hello World in Applet!,20,20);这个程序中没有实现main()方法,这是Applet与应用程序Application(如上例)的区别之一。为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后在jcreator中对它进行编译: 得到字节码文件HelloWorldApplet.class。由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。它的文件如下:An Applet其中用标记来启动HelloWorldApplet.code指明字节码所在的文件,width和height指明applet所占的大小,把这个HTML文件存入Example.html,然后运行该网页。3、安装JCREATOR软件,并配置JCREATOR,在JCREATOR中用建立工程的方式重新运行上面的两个例题。JCREATOR软件安装完成后,请打开配置选项,如下,检查JDK配置文件是否安装好,如果没有点击新建完成配置。三、 思考题1什么是Java虚拟机?它的作用是什么?2Java Application程序与Java Applet程序的不同之处有那些?请各位同学收集错误代码与提示信息,以及产生错误的原因。3上网搜索目前有哪些Java开发平台,分析他们的优缺点或特点。四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。实验二 Java语言基础一、 实验目的1掌握Java语言的标识符和保留字,各简单数据类型变量以及有逻辑量意义数据的表示方法以及表示条件的表达式的类型。2掌握Java语言中具各种运算符表达式的基本知识。3熟练掌握使用if语句进行单分支结构和双分支结构程序设计的基本方法。4熟练掌握使用if语句的嵌套及switch语句进行多分支结构程序设计的基本方法。5熟练掌握while、do-while和for三种语句组成循环结构的基本方法。熟练掌握特殊流程控制语句如break,continue,标号语句。6熟练掌握一维数组和二维数组的使用7把课堂上学到的理论用于实践,并验证理论的正确性,和发现新的问题二、 实验内容与要求1、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public class Ch21 public static void main(String args) char x,y,z; x=K; y=; z=117; System.out.print(x); System.out.print(y); System.out.print(z); 2、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public class Ch22 public static void main(String args) boolean x,y,z; int a=12,b=24; x=(ab); y=(a!=b); z=(a+b=36); System.out.println(x=+x); System.out.println(y=+y); System.out.println(z=+z); 3、仔细读下面的JAVA语言源程序,自己给出程序的运行结果public class Ch23 public static void main(String args) int x,y,z=0; for (x=1;x=10;x+) for (y=1;y5) break; z+; System.out.println(z=+z); 4 金额的中文大写形式。编写程序。具体要求见教材P63。三、 思考题1break,continue在流程控制中的作用。2Java运算符的优先级与结合性是怎样的?3&和&有什么区别?4Java程序中可以定义中文字符的变量吗?四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。实验三 类的设计与使用一、 实验目的1、熟练掌握类、对象的的概念以及对事物的抽象。2、熟练掌握成员、方法的概念以及构造方法的概念。3、熟练掌握封装性,多态性的概念4、理解面向对象的程序设计方法。二、 实验内容与要求1设计复数类 设计一个复数类,成员变量包括实部和虚部,成员方法包括实现复数的加法、减法、比较、转换成字符串输出等。public class Complex private double real,im; /实部,虚部 public Complex(double real, double im) /构造方法 this.real = real; this.im = im; public Complex(double real) /构造方法重载 this(real,0); public Complex() this(0,0); public Complex(Complex c) /拷贝构造方法 this(c.real,c.im); public boolean equals(Complex c) /比较两个对象是否相等 return this.real=c.real & this.im=c.im; public String toString() return (+this.real+this.im+i); public void add(Complex c) /两个对象相加 /改变当前对象,没有返回新对象 this.real += c.real; this.im += c.im; public Complex plus(Complex c) /两个对象相加,与add()方法参数一样不能重载 /返回新创建对象,没有改变当前对象 return new Complex(this.real+c.real, this.im+c.im); public void subtract(Complex c) /两个对象相减 /改变当前对象,没有返回新对象 this.real -= c.real; this.im -= c.im; public Complex minus(Complex c) /两个对象相减,与subtract()方法参数一样不能重载 /返回新创建的对象,没有改变当前对象 return new Complex(this.real-c.real, this.im-c.im); class Complex_ex public static void main(String args) Complex a = new Complex(1,2); Complex b = new Complex(3,5); Complex c = a.plus(b); /返回新创建对象 System.out.println(a+ + +b+ = +c); 2、定义一个类实现银行帐户的概念,成员变量有帐号和存款余额等,成员方法有存款、取款、查询余额和”显示帐号”等。定义主类,创建帐户类的对象,并完成相应操作。三、 思考题1一个方法或一个块内定义的变量是否可以在方法外或块外使用?这种变量称为什么?方法的形式参数是否可以在方法之外使用?2为什么说构造函数是一种特殊的方法?特殊在哪里?构造函数什么时候执行?被谁调用?3子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?4同名的不同方法共存的情况称为什么?如何区分这些同名方法?四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。 实验四 设计实现接口的类一、 实验目的理解接口,设计实现接口的类二、 实验内容与要求1请仔细阅读下面程序,体会接口的使用方法。 该程序的功能是计算某商店商品的销售总额。interface ComputeTotalSales public double totalSalesByYear();class Television implements ComputeTotalSales public double totalSalesByYear() return 50000.456; class Computer implements ComputeTotalSales public double totalSalesByYear() return 50000.456; class Mobile implements ComputeTotalSales public double totalSalesByYear() return 50000.456; class Shop ComputeTotalSales goods; double totalSales=0; Shop(ComputeTotalSales goods) this.goods=goods; public double giveTotalSales() totalSales=0; for(int i=0;igoods.length;i+) totalSales=totalSales+goodsi.totalSalesByYear(); return totalSales; public class HappySale public static void main(String args) ComputeTotalSales goods=new ComputeTotalSales50; for(int i=0;i=1) & (m=1) & (d=31) ? d : 1; 三、 思考题1. 本实验的实验内容2中,finally程序块的作用是什么?2异常分为哪两类?3如果申明int a=new int-10;应属于那类异常4比较throw和throws两者的用法上的区别。四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。实验六 图形用户界面设计一、 实验目的1. 掌握常用GUI控制组件的使用方法。2. 掌握事件处理的方法。3了解swing控件的概念。二、 实验内容1编程包含一个标签和一个按钮,单击按钮时,标签的内容在你好和再见之间切换。2编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。3设计计算器,要求见教材P212。三、 思考题1Java的事件处理机制是怎样的?2若一个数据只有两种取值可能,采用哪种组件表示比较合适?如果有二种到三种取值可能,采用哪种合适?如果取值的可能大于5个,采用哪种组件合适?3事件监听器和事件适配器的关系是什么?4编程包含两个按钮和一个标签,将发生单击事件的按钮上的文本信息显示在标签中。提示:关键代码如下:b1.addActionListener(new B1();b2.addActionListener(new B2();class B1 implements ActionListener public void actionPerformed(ActionEvent e) who.setText(Button 1);class B2 implements ActionListener public void actionPerformed(ActionEvent e) who.setText(Button 2);四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。实验七 Applet应用程序设计一、 实验目的1掌握Java Applet程序结构和开发过程2了解Applet运行机制3学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法。4了解Applet与浏览器的通信。5掌握在Applet图形界面设计。二、 实验内容与要求1Java Applet程序开发过程输入一个applet源程序,学习编辑、编译、运行程序的方法。 简单的Applet小程序例/ HelloWorldApplet.javaimport java.awt.*;import java.applet.*;public class HelloWorldApplet extends Applet /anappletpublic void paint(Graphics g)g.drawString(Hello World in Applet!,20,20);这个程序中没有实现main()方法,这是Applet与应用程序Application(如上例)的区别之一。为了运行该程序,首先我们也要把它放在文件HelloWorldApplet.java中,然后对它进行编译:得到字节码文件HelloWorldApplet.class。由于Applet中没有main()方法作为Java解释器的入口,我们必须编写HTML文件,把该Applet嵌入其中,然后用appletviewer来运行,或在支持Java的浏览器上运行,如IE。它的文件如下:An Applet其中用标记来启动HelloWorldApplet.code指明字节码所在的文件,width和height指明applet所占的大小,把这个HTML文件存入Example.html,然后运行IE中运行Example.html,注意HelloWorldApplet.class要和Example.html在同一文件夹中。2运行下面的程序,掌握Applet的生命周期与绘图周期。import java.applet.*;import java.awt.*;public class LifeCycle extends Appletprivate int InitCnt;private int StartCnt;private int StopCnt;private int DestroyCnt;private int PaintCnt;public LifeCycle()/在init()执行前执行构造函数InitCnt = 0;StartCnt = 0;StopCnt = 0;DestroyCnt = 0;PaintCnt = 0;public void init()InitCnt+;public void destroy()DestroyCnt+;public void start()StartCnt+;public void stop()StopCnt+;public void paint(Graphics g)PaintCnt+;g.setColor(Color.red); g.drawString(InitCnt:+InitCnt,20,20); g.drawString(StartCnt:+StartCnt,20,40); g.drawString(PaintCnt:+PaintCnt,20,60); g.drawString(StopCnt:+StopCnt,20,80); g.drawString(DestroyCnt:+DestroyCnt,20,100);三、 思考题1、说明Applet的生命周期。2、构造方法、start()方法和init()方法谁先被执行?2、说明Applet 类的继承关系。3、Applet如何与网页中其他对象通信4、说明Java和JavaScript的区别。四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。实验八 输入/输出流和文件操作一、 实验目的1、理解流的概念,流的划分2、 掌握文件描述,顺序处理,随机访问处理的方法;3、 能够熟练的使用过滤流;掌握字符流处理的方法;4、 理解对象串行化的概念和方法。 二、 实验内容与要求 1、 仔细读下面的JAVA语言源程序,自己给出程序的运行结果,理解File类的使用。import java.io.*;import java.awt.*;import java.awt.event.*;public class Ch71 extends Frame int n; String dirname=/jdk1.4; File file=new File(dirname); String flist=new String100; Choice listFile=new Choice(); TextField tf=new TextField(); public Ch71() setLayout(new BorderLayout(10,10); flist=file.list(); for (n=0;nflist.length;n+) listFile.addItem(flistn); add(North,listFile); add(South,tf);setSize(250,200); setVisible(true); listFile.addItemListener(new koListener(); addWindowListener(new koWindowListener(); public static void main(String args) new Ch71(); class koListener implements ItemListener public void itemStateChanged(ItemEvent e) String ko=(String)e.getItem(); for (n=0;nflist.length;n+) if (ko=flistn) File f=new File(file+System.getProperty(file.separator)+ko); if (f.isFile()=true) tf.setText(ko+是个文件!); if (f.isDirectory()=true) tf.setText(ko+是个目录!); class koWindowListener extends WindowAdapter public void windowClosing(WindowEvent e) dispose(); System.exit(0); 2、仔细读下面的JAVA语言源程序,自己给出程序的运行结果import java.io.*;public class testRandom2public static void main(String args)tryRandomAccessFile rf=new RandomAccessFile(rtest.dat, rw);for(int i = 0; i 10; i+) rf.writeInt(i); rf.writeDouble(i*1.414); rf.close();rf = new RandomAccessFile(rtest.dat, rw);rf.seek(5*(4+8);rf.writeInt(47);rf.writeDouble(47.00021);rf.close();rf = new RandomAccessFile(rtest.dat, r);for(int i = 0; i 10; i+) ; System.out.println(Value + rf.readInt() + : + rf.readDouble();rf.close();catch(IOException e)System.out.println(e.toString();3、编写程序,能接收键盘输入的字符串,并将字符串的内容写入文件。三、 思考题1、InputStream和OutputStream的基本方法是什么?2、 DataOutputStream类的常用方法。3、 Ascii编码和Unicode编码的区别?5字符流和字节流的区别是什么?6对文件进行读写操作的过程是什么?四、 实验报告1、实验完成后,检查是否达到试验目的。2、编写实验报告,在下一次上实验课时提交。3、评出成绩,按五级(A,B,C,D、E)评分。附录:Java Learning Path (一)、工具篇一、 JDK (Java Development Kit)JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)运行效率要比Sun JDK包含的JVM高出许多。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。但不管怎么说,我们还是需要先把Sun JDK掌握好。1、 JDK的下载和安装JDK又叫做J2SE(Java2 SDK Standard Edition),可以从Sun的Java网站上下载到,/j2se/downloads.html ,JDK当前最新的版本是J2SDK1.4.2,建议下载该版本的JDK,下载页面在这里:/j2se/1.4.2/download.html。下载好的JDK是一个可执行安装程序,默认安装完毕后会在C:Program FilesJava目录下安装一套JRE(供浏览器来使用),在C:j2sdk1.4.2下安装一套JDK(也包括一套JRE)。然后我们需要在环境变量PATH的最前面增加java的路径C:j2sdk1.4.2bin。这样JDK就安装好了。2、 JDK的命令工具JDK的最重要命令行工具:java: 启动JVM执行classjavac: Java编译器jar: Java打包工具javadoc: Java文档生成器这些命令行必须要非常非常熟悉,对于每个参数都要很精通才行。对于这些命令的学习,JDK Documentation上有详细的文档。二、 JDK DocumentationDocumentation在JDK的下载页面也有下载连接,建议同时下载Documentation。Documentation是最最重要的编程手册,涵盖了整个Java所有方面的内容的描述。可以这样说,学习Java编程,大部分时间都是花在看这个Documentation上面的。我是随身携带的,写Java代码的时候,随时查看,须臾不离手。三、 应用服务器(App Server)App Server是运行Java企业组件的平台,构成了应用软件的主要运行环境。当前主流的App Server是BEA公司的Weblogic Server和IBM公司的Websphere以及免费的Jboss,选择其中一个进行学习就可以了,个人推荐Weblogic,因为它的体系结构更加干净,开发和部署更加方便,是Java企业软件开发人员首选的开发平台。下面简要介绍几种常用的App Server:1、 TomcatTomcat严格意义上并不是一个真正的App Server,它只是一个可以支持运行Serlvet/JSP的Web容器,不过Tomcat也扩展了一些App Server的功能,如JNDI,数据库连接池,用户事务处理等等。Tomcat被非常广泛的应用在中小规模的Java Web应用中,因此本文做一点下载、安装和配置Tomcat的介绍:Tomcat是Apache组织下Jakarta项目下的一个子项目,它的主网站是:/tomcat/ ,Tomcat最新版本是Tomcat4.1.27,软件下载的连接是:/dist/jakarta/tomcat-4/binaries/ 。下载Tomcat既可以直接下载zip包,也可以下载exe安装包(个人建议zip更干净些),不管哪种情况,下载完毕安装好以后(zip直接解压缩就可以了)。需要设置两个环境变量:JAVA_HOME=C:j2sdk1.4.2CATALINA_HOME=D:tomcat4 (你的Tomcat安装目录这样就安装好了,启动Tomcat运行CATALINA_HOMEbinstartup.bat,关闭Tomcat运行shutdown.bat脚本。Tomcat启动以后,默认使用8080端口,因此可以用浏览器访问http:/localhost:8080来测试Tomcat是否正常启动。Tomcat提供了两个Web界面的管理工具,URL分别是:http:/localhost:8080/admin/index.jsp http:/localhost:8080/manager/html 在启用这两个管理工具之前,先需要手工配置一下管理员用户和口令。用一个文本工具打开CATALINA_HOMEconftomcat-users.xml这个文件,加入如下几行:这样用户“robbin”就具备了超级管理员权限。重新启动Tomcat以后,你就可以使用该用户来登陆如上的两个管理工具,通过Web方式进行Tomcat的配置和管理了。2、 BEA WeblogicWeblogic可以到BEA的网站上免费注册之后下载到最新的Weblogic8.1企业版,License可以免费使用1年时间,其实这已经完全足够了。Weblogic的下载连接:/index.jsp,Weblogic的在线文档:/ 。3、 IBM WebshpereWebsphere同样可以下载到免费的试用版本,到IBM的developerWorks网站可以看到Websphere试用产品的下载和相关的Websphere的资料,developerWorks中文网站的连接是:/developerWorks/cn/wsdd/ ,Websphere的下载连接:/wsdd/downloads/WASsupport.html 。4、 JbossJboss是免费开源的App Server,可以免费的从Jboss网站下载:/index.html,然而Jboss的文档是不免费,需要花钱购买,所以为我们学习Jboss设置了一定的障碍。在Jdon上有几篇不错的Jboss配置文档,可以用来参考:/idea.html 四、 Java应用的运行环境Java的应用可以简单分为以下几个方面:1、 Java的桌面应用桌面应用一般仅仅需要JRE的支持就足够了。2、 Java Web应用Java的Web应用至少需要安装JDK和一个web容器(例如Tomcat),以及一个多用户数据库,Web应用至少分为三层:Browser层:浏览器显示用户页面Web层:运行Servlet/JSPDB层:后端数据库,向Java程序提供数据访问服务3、 Java企业级应用企业级应用比较复杂,可以扩展到n层,最简单情况会分为4层:Browser层:浏览器显示用户页面Client层:Java客户端图形程序(或者嵌入式设备的程序)直接和Web层或者EJB层交互Web层:运行Servlet/JSPEJB层:运行EJB,完成业务逻辑运算DB层:后端数据库,向Java程序提供数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论