Java面向对象程序设计实验.doc_第1页
Java面向对象程序设计实验.doc_第2页
Java面向对象程序设计实验.doc_第3页
Java面向对象程序设计实验.doc_第4页
Java面向对象程序设计实验.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计(Java)实验手册 F.M.Y学号 班级 姓名 面向对象程序设计(Java) 实验 方美玉编制 2011.216常见错误信息一、编译时错误:1. javac:Command not found (命令找不到,或不是内部命令)指javac.exe、java.exe等java环境参数没有设定或没有安装jdk2.HelloWorldApp.java:3:Method printl(java.lang.String)not found in class java.io.PrintStream.System.out.printl(Hello World!”);键入的方法名printl不正确,方法prinln()的名字写成了printl。错误信息中用符号”指示系统找不到的方法名,第一行中的第3表示错误所在的行数,即第3行(注释行不计算在内)。对于系统不认识的标识符号,可能有以下几个原因:(1) 程序员拼写错误,包括大小写不正确;(2) 方法所在的类没有导入到当前的名字空间;(3) 实例所对应的类中没有定义要调用的方法(4) 其它原因3HelloWorldApp.java:1:Public class HelloWorldapp must be defined in file called”HelloWorldApp.java”文件HelloWorldApp.java中的公有类HelloWorldapp名字和文件名不一致。Java规定,如果.java文件中包含一个公有类,则文件名与类名一致,文件名与类名不一致时会发生该错误。此例中,名字中的字母a大小写不统一。4. ; expected表示本行缺少分号5 expected表示缺少 interface expected表示 多余二、运行时错误1Cant find class HelloWorldApp系统找不到名为HelloWorldApp的类文件,一般地,该错误意味着类名拼写和原文件名不一样,系统创建filename.java文件时使用的是类名,并且区分大小写2In class HelloWorldApp:main must be public and staticmain左边缺少public和static3文件中含有的类个数错误按java规则,在一个原文件中最多只能有一个public类,否则会发生运行时错误,如果一个文件中有多个公有类,则要把它们各自放到不同的文件中,文件中非公有类的个数不限。4层次错误package 语句import语句和类的定义一定要按顺序出现。实验一 Java开发环境(1)J2SE学习视频材料:1 实验目的(1) 掌握下载和安装J2SE开发工具的方法(2) 熟悉J2SE开发工具的使用(3) 熟悉编写简单的Java Application 和Java Applet程序(4) 了解Java源代码、字节码文件,掌握Java程序的编辑、编译和运行过程。2 实验任务从网络下载或从CD-ROM直接安装Java开发工具J2SE,编写简单的Java Application和Java Applet程序,编译并运行这两个程序。3 实验步骤实验一 Java开发环境(2)MyEclipse参见并自学:MyEclipse中新建和打开项目的操作 S1 java:/v_show/id_XMjAyNTM0MzI0.html1 实验目的(1) 掌握下载和安装MyEclipse集成开发工具的方法(2) 熟悉MyEclipse集成开发工具的使用(3) 学习编写简单的Java程序(4) 了解Java源代码、字节码文件,掌握Java程序在集成开发环境中的编辑、编译和运行过程。2 实验任务从网络下载或从CD-ROM直接安装Java集成开发工具MyEclipse,编写简单的Java Application和Java Applet程序,编译并运行这两个程序。3 实验步骤实验二 简单Java程序设计(1)1 实验目的(1) 学习编写简单的Java程序(2) 学习Java程序中简单字符和图形界面字符和数字数据的输入输出(3) 学习掌握Java基本类型及其计算2 实验任务(1) 编写字符界面的Java Application接收用户输入的一个字符,并把该字符打印在屏幕上。(2) 编写图形界面的Java Applet,其中包括一个按钮,一个文本域和一个标签,当用户在文本域中输入若干字符并单击按钮时,将用户输入的字符显示在标签上。(3) 编写图形界面的Java Application,完成与第(2)项任务相同的功能。(4) 编写图形界面的Java Applet,接收用户输入的一个整数型和一个浮点型数,单击按钮求两数之和。(5) 编程实现如下的功能,接收用户输入的一个08000之间的年份,输出这一年是否为闰年。3 实验步骤(1) 键入,运行如下的Java Application程序并回答问题/字符界面下的基本输入输出程序:SimpleCharInOut.java import java.io.*;public class SimpleCharInOut public static void main(String args) char ch= ; /定义字符变量 System.out.print(Enter a character please:); /在屏幕上显示提示信息 try ch=(char)System.in.read(); /接受用户键盘输入的字符并保存 catch(IOException e); /在变量ch中 System.out.println(Youve entered character: +ch); /输出ch 运行该程序时屏幕显示什么?如果不敲击键盘输入字符,程序会如何反应?如果敲击键盘输入字符但不输入回车,程序会如何反应?为什么?如何结束此程序的运行?如果从键盘输入了一个字符并按回车键,程序输出什么?如果从键盘输入了多个字符并按回车键,程序又输出什么?为什么?(2) 键入、运行如下的Java Applet程序并回答问题import java.applet.Applet;import java.awt.*;import java.awt.event.*;public class SimpleGraphicsInOut extends Applet implements ActionListenerLabel prompt;TextField input;Label output;public void init() prompt=new Label(Enter a character please:); input=new TextField(3); output=new Label(“ “); add(prompt); add(input); add(output); input.addActionListener(this);public void actionPerformed(ActionEvent e) output.setText(“Youve entered character:”+input.getText(); 编写嵌入这个Applet程序的HTML文件SimpleGraphicsInOut.html。 SimpleGraphicsInOut 在浏览器里打开这个HTML文件,查看Java Applet在图形界面下的输入输出。 在文本框中输入文字并按回车观察程序的输出,如果不按回车,是否有输出,为什么?在文本框中输入多个字符并按回车,输出是什么?在文本框中输入多个汉字(例如:输入你的名字)并按回车键,输出是什么? 把程序里原来的语句: prompt=new Label(Enter a character please:);改写为下面的语句: prompt=new Label(请输入一个或一串字符:); 保存修改后的.java文件,重新编译(javac)并运行,程序的样子有什么改变?如果希望输出提示也是中文,如何修改程序? 把程序原来的语句: input=new TextField(3);分别先后改为下面的语句: input=new TextField(6);和 input=new TextField(“在这里输入,6);并分别运行两次修改后的程序,程序的界面有何变化?体会textField的用法。(3) 键入、运行如下的Java Application程序:GraphicsAppInOut.javaimport java.awt.*;import java.awt.event.*;public class GraphicsAppInOut public static void main(String args) ApplctFrame MyFrame=new ApplctFrame(); class ApplctFrame extends Frame implements ActionListener Label prompt; TextField input; Label output; ApplctFrame ()super(Application Graphics Frame);setLayout(new FlowLayout(); prompt=new Label(Enter a character please:); input=new TextField(4); output=new Label(“ “); add(prompt); add(input); add(output); input.addActionListener(this);this.addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent we) System.exit(0); ); setSize(500,100); setVisible(true); public void actionPerformed(ActionEvent e) output.setText(“character”+input.getText(); 这是一个Java Application程序,在命令行运行它,界面会发生什么变化,为什么? 把程序里原有的语句:super(Application Graphics Frame);改为下面的语句super(图形界面的Java Application程序);重新运行程序,有何变化?试着把窗口的标题改成你希望的内容。 这个Application程序的输入输出功能与上面的Applet程序的输入输出功能是否完全相同?其输入输出功能与第一个Application相比有何不同?体会字符界面与图形界面输入输出编程和操作的不同。本实验中的三种输入输出方法,你喜欢哪一种方法,为什么?(5) 键入、运行如下的Java Applet程序并回答问题 import java.applet.*;import java.awt.*;import java.awt.event.*;public class NumberInput extends Applet implements ActionListenerLabel prompt1=new Label(请输入整数:);Label prompt2=new Label(请输入浮点数:);TextField input_int=new TextField(6);TextField input_double=new TextField(6);TextField output=new TextField(35); Button addBtn=new Buton(相加);int getInt;double getDouble;public void init()add(prompt1);add(input_int);add(prompt2);add(input_double);add(addBtn); add(output);addBtn.addActionListener(this);output.setEditable(false); public void actionPerformed(ActionEvent ae) if(!(ae.getSource().equals(addBtn) return; getInt=Integer.parseInt(input_int.getText(); getDouble=Double.valueOf(input_double.getText().doubleValue(); output.setText(整数+getInt+ 和浮点数+getDouble+之和为+(getInt+getDouble) 为这个Applet编写HTML 文件,运行这个程序观看得到的结果。 根据图形界面的提示输入相应的整数和浮点数,单击按钮,观看所得到的结果。 如果像前面的实验一样在文本域里按回车键,而不是单击按钮,程序有什么影响?为什么? 如果在应该输入整数的文本域里输入了浮点数,或者在应该输入浮点数的文本域里输入了字母,单击按钮,程序有什么响应?为什么 为本实验的代码增加详细的行注释。实验三 简单Java程序设计(2)1 实验目的(3) 掌握结构化程序设计的基本结构、分支与循环。(4) 掌握Java程序中方法的定义域调用(5) 学习阅读、辨别和理解编译错误和运行错误,学习基本的排查错误技巧2 实验任务(1) 编写字符界面的Java Application将用户输入的小写字符转化为大写字符打印在屏幕上,若用户输入的不是小写字符则打印信息说明无法完成指定的操作。(2) 编写图形界面的Java Applet,接受用户输入的正整数,若用户输入的不是正整数则利用一个标签提示错误并要求重新输入,直至得到符合要求的数据。(3) 编写图形界面的Java Application,接收用户输入的一个0100之间的分数,将其转化为15的5分计分法。 90100:5; 7589:4; 6074:3; 4059:2 其它:1。(4) 编写一个Java Applet程序,从键盘输入一个整数,求出其阶乘值。(5) 计算自然常数e=1+1/1!+1/2!+1/3!+1/4!+1/n!,n的取值应保证1/n!10-3,利用上一题已有的程序代码,使之成为本题可以调用的方法。3 实验步骤实验四 类与对象1 实验目的(1) 掌握结构化程序设计的基本结构、分支与循环。(2) 掌握Java程序中方法的定义域调用(3) 学习阅读、辨别和理解编译错误和运行错误,学习基本的排查错误技巧2 实验任务(1) 阅读下面的程序,在main方法里添加语句完成如下的功能: 创建一个MyValue类的对象myValue. 为myValue对象中的value域赋值10. 使用getValue()方法获得myValue对象中的数据并将它打印在屏幕上。class value private int value; public void setValue(int x) value=x; public int getValue() return value; public class UseValue public static void main(String args) (2) 试编写Java代码实现一个计数器类Counter,其中包括:l 域counterValue 用来保存计数器的当前数值;l 方法increment() 计数器加一;l 方法decrement() 计数器减一l 方法reset() 计数器清零。对于这个类,你计划定义几个构造函数?(3)使用计数器类,编程管理会议室投影仪的出借情况。每新购入一台投影仪或收回一台投影仪,计数器加一;每淘汰一台投影仪,计数器减一。(4)编程实现矩形类,其中应包括计算矩形周长和面积的方法。如何使你的定义更好的满足面向对象程序设计中信息隐藏和封装原则?对于这个类,你计划定义几个构造函数?(5)使用矩形类,编程统计若干块土地的相关信息。由用户输入每块土地的长与宽,程序将计算其面积并显示出来。3 实验步骤 实验五 继承与多态1 实验目的(1) 掌握类的继承关系和派生方法。(2) 掌握多态的概念和使用。(3) 掌握接口的定义与使用。(4) 掌握包的概念与使用2 实验任务(1) 为实验4中的定义的矩形类派生一个子类:正方形类。若正方形类的操作同样是求周长和面积,则这个子类除了从父类那里继承的方法之外,还需要哪些方法?列出正方形类的所有域和方法。编程检查、运行所编写的正方形类。(2) 定义接口Printable,其中包括一个方法printItMyWay(),这个方法没有形参,返回值为空。(3) 改写矩形类,使之实现Printable接口,用PrintItMyWay()方法将矩形的相关信息(长、宽、周长、面积)打印在屏幕上。(4) 改写正方形类,重载printItMyWay()方法,将正方形的边长、周长、面积打印在屏幕上。(5) 在Printable接口上增加一个新的printItMyWay(char)方法,这个方法有一个字符类型的形参,返回值为空。其功能是利用给出的字符打印,例如若给定的字符为#,一个长为5,宽为3的矩形的屏幕打印结果为:# # # # # # # # # # # # #保持矩形不变,编译运行,有什么结果?为什么?在矩形中实现新定义的printItMyWay(char)方法,保持正方形不变,编译运行,有什么结果?为什么? (6) 将矩形和正方形组织成一个包MyFigure。3 实验步骤实验六 数组、向量和字符串1 实验目的(1) 掌握基本数据类型的概念和使用。(2) 掌握和利用Math类实现基本数学运算的方法。(3) 掌握数组的概念和使用。(4) 掌握字符串的概念和使用。2 实验任务(1) 变成接收用户输入的一个正浮点数,随机生成一个不大于该数的正整数,在屏幕上打印输出。(2) 试用数组实现一个10到20 的平方表,打印输出这个平方表。(3) 编程记录用户输入的一组正整数据,-1表示输入结束。求这些数据的平均值,并统计大于平均的数据个数,这个问题应该选用数组还是向量实现?为什么?。(4) 编写图形界面的程序,接收用户输入的一个字符串和一个字符,将字符串中出现的所有该字符删除,打印输出新生成的结果字符串。(5) 编写一个Java Application,将用户输入的命令行参数一个一行打印输出。(6) 试编写一个一Java Applet程序,接受用户输入的一个文件名,然后截取其后缀,根据其后缀判断文件类型。例如后缀为.java的是Java源程序文件,后缀是.txt的是文本文件。注意提高程序的容错性。3 实验步骤实验七 排序与查找1 实验目的(1) 掌握排序与查找的基本概念。(2) 掌握基本的排序方法,了解它们各自的特点。(3) 掌握基本的查找方法。(4) 了解不同算法之间的运算复杂度及其对程序的影响。2 实验任务(1) 编写字符界面的程序,接收用户输入的若干个正整数,-1表示输入结束。使用冒泡方法将输入的数据序列降序排序,并打印每一次扫描后的结果。运行时使用不同的数据序列观察其执行结果: 序列中只有一个数据。 序列中有重复的数据。 序列中的数据输入时按升序排列。 序列中的数据输入时按降序排列。(2) 使用选择或插入排序方法实现上面的要求。(3) 编程接收用户输入的若干数据,将它们降序排列。再接收用户输入的一个数字,使用对分法在序列中查找该数据并输出查找结果。(4) 编写Applet实现猜数游戏,游戏开始时程序给出一个范围,例如0200,并随机生成该范围内的一个数,例如174.程序将范围显示给用户,将所生成的数隐藏起来要求用户猜这个数的数

温馨提示

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

评论

0/150

提交评论