《《面向对象程序设计》实验指导书1.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》实验指导书1.docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计实验指导书1 面向对象程序设计课程实验指导书 实验一 Java开发环境的安装与配置 一、实验目的: 1. 掌握JDK、Eclipse的安装步骤。 2. 理解环境变量PATH, CLASSPATH的作用,以及Eclipse的配置。 3. 熟悉Eclipse的编辑、编译与调试环境,编写简单的Application程序 编译执行并完成调试。 二、实验内容: 熟悉JDK的安装和配置,学习如何编写并运行简单的Application程序 (能输出一条简单的问候信息); 三、实验要求: 1. 能正确地安装JDK 2. 熟悉环境变量PATH, CLASSPATH设置方法,熟悉编辑环境 3. 调
2、试程序、编译,运行后得到正确的结果 四、实验步骤: 1从 /technetwork/java/index.html上下载最新版本的JDK,并安装。 2设置环境变量PATH, CLASSPATH, 使得Java程序能正确编译和执行。 3在Eclipse环境下编写一个HelloWorld.java程序, (1)在主方法static public void main(String args)中调用System. out.println()方法,使程序输出一条问候信息; (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用 javac.exe和java.exe编译和执行程序) 实验二
3、Java语言基础 一、实验目的: 熟悉Java基本语法,基本数据类型,各种运算符及表达式的使用,掌握运算符优先级,熟悉使用Java的选择语句,循环语句。 二、实验内容: 1.编写Java Application程序,输出1900年到2000年之间的所有润年。 (闰年的判断条件:能被4整除且不能被100整除,或能被400整除); 2.金字塔:Pyramid.java 在屏幕上显示一个由星型符号“*”组成的金字塔图案,示例如下: * * * * 要求:金字塔高度h,可以由用户设置。 三、实验要求: 1. 正确使用Java语言的选择语句,循环语句; 2. 调试程序、编译,运行后得到正确的结果 3.写
4、出实验报告。要求记录编译和执行Java程序当中的系统错误信息提成 示,并给出解决办法。 四、实验步骤: 1.编写主类; 2.在static public void main(String args)方法中加入实现要求功能 的代码,主要步骤如下: (第一题)从1900到2000循环,按照闰年的判断条件是则输出1900年到2000年之间的所有润年。 (第二题)允许用户设置金字塔高度。 4. 编译运行程序,观察输出结果是否正确。 实验三 Java数组、字符串及常用类应用 一、实验目的: 掌握数组的定义和使用方法;熟悉数组的排序、查找等算法。 掌握字符串的使用方法。 二、实验内容: 1.编写Appli
5、cation程序,从命令行参数输入10个整数并保存在数组中,求数 组中最大、最小、数据的和、平均值。 2.将命令行第一个参数每个字符放入一字符数组,然后逆序输出 3编写Application程序,接受用户输入一段英文文字后,输出其中的字符数、单词数和句子数(设句子以“?”、“!”、“.”结束)。 4打印杨辉三角的前10层。 三、实验要求: 1.熟练对象数组及创建初始化和未初始化的数组的方法; 2. 熟悉从命令行参数的使用; 3. 熟悉String 和StringBuffer的使用方法 4. 熟悉常用类库的使用; 四、实验步骤: 1(第1题).从命令行输入10个数到数组,用循环语句分别求最大、最
6、小、数据的和、平均值。 2. (第2题)利用String类的各种方法,分别判断字符是否为“?”、“!”、“.”,用3个计数器分别计数。 3(第3题)将命令行第一个参数字符串中的每个字符作为数组元素放入一字符数组,再循环语句逆序数组元素。 4(第4题)定义一个二维数组,第一维的长度为所打印杨辉三角的层数(即10),第二维为每一层的数据个数(也就是其所在的层数)。 实验四类和对象 一、实验目的: 掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现; 掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法; 掌握类变量与实例变量,以及类方法与实例方法的区别。 三、实
7、验内容: 1.定义一个类Point,代表一个点,public属性有x和y,方法有显示点坐标 show(),构造函数有两个参数分别给x,y赋值,在main方法中构造两个对象,再创建一方法(getMiddle)为取两个点构成线段的中点的坐标,参数为2个点对象,调用此方法后得到一个新的点,编写Application,显示该对象的坐标值。 2.定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形
8、式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2) 求两个复数的差的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex subComp(Complex C1,Complex C2) 求两个复数的乘积的方法:(参数是两个复数类对象,返回值是复数类对象,新复数实部=两复数实部乘积-两复数虚部乘积,新复数虚部=两复数实部与虚部交叉乘积之和,)public Complex multiComp(Complex C1,Complex C2) 比较两个复数是否相等的方法
9、(参数是两个复数类对象,返回值是boolean 类型)public boolean equalComp(Complex C1,Complex C2) 在Application中测试该类的方法,实部x和虚部y可由main方法参数提供输入。 三、实验要求: 1. 正确地定义类、方法和属性; 2. 学会方法的参数传递和返回值的用法; 3. 熟练使用类及其成员修饰符 4.使用构造函数创建类的对象; 5.类变量与实例变量,以及类方法与实例方法的使用 6.程序应包括各个被调用方法的执行结果的显示。 7.写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤:
10、1. (第1题) 定义类Point及它的属性、方法和构造函数,定义主类和 main(),在main()方法中创建两个坐标对象,,并通过对象调用getMiddle 方法后得到一个新的点坐标,调用show()显示该对象的坐标值。 2. (第2题)定义一个复数(z=x+iy)类Complex,及它的属性、方法和构造函 数;定义主类和main()方法,在main()方法中创建两个复数类Complex 对象,并通过复数类对象调用它们的属性和方法,输出方法执行结果。 实验五继承与多态 一、实验目的: 掌握继承、多态的概念与实现方法; 掌握包和接口的定义和使用方法; 了解JA VA语言实现多继承的途径; 二
11、、实验内容: 1定义抽象类Shape,抽象方法为showArea(),求出面积并显示,定义矩形类Rectangle,正方形类Square,圆类 Circle,根据各自的属性,用showArea方法求出各自的面积,在main方法中构造3个对象,调用showArea方法。 定义接口DiagArea,其中包含方法double getDiagonal()求对角线长, double getArea()求面积,定义一个矩形类,实现此接口,并自行扩充成员变量和方法,定义一个正方形类继承矩形类(如矩形有长w和宽h,正方形有边x,并有相应的构造函数,有一个方法中一次直接显示边长、面积和对角线长),在另一类中的主
12、方法里使用测试该类。 三、实验要求: 1. 能实现类的继承关系; 2. 用多种方法创建各个类的对象; 3. 程序应包括各个调用方法的执行结果的显示。 4. 写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提示, 并给出解决办法。 四、实验步骤: 1(第1题)定义抽象类Shape,抽象方法为showArea(),再定义矩形类Rectangle,正方形类Square,圆类 Circle,和各自的属性。定义主类、主方法,在main方法中构造3个对象,调用showArea方法;定义接口DiagArea,其中包含方法double getDiagonal(),在主main方法中输出方法执行结
13、果。 实验六 Java的异常处理 一、实验目的: 理解 java 语言中独特的异常处理机制; 掌握异常处理方法; 正确地使用捕获异常和声明抛弃异常的两种异常处理的方法; 了解自定义异常类的使用; 理解抛出异常和声明抛出异常的区别与联系; 二、实验内容: 1从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显 示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示 “请输入至少5个整数”。 2写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,如果不
14、能则抛出异常IllegalArgumentException, 显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角 形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并 捕获异常。 3.自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c) 分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边 长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自 定义异常NotSanjiaoException,否则显示正确信息。在另外一个类中 的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示 三角形信
15、息和面积,要求捕获异常。 三、实验要求: 1. 通过实验掌握捕获异常和声明抛弃异常的两种异常处理的方法; 2. 程序必须能够捕获Integer.parseInt()产生的异常并作相应的处理; 3. 程序必须能够将处理的相应的信息输出出来; 4. 写出实验报告。要求记录编译和执行Java程序当中的系统错误信息提材 示,并给出解决办法。(附运行界面、源代码)。 四、实验步骤: 1. (第1题) 使用try.catch. finally语句对Integer.parseInt() 产生的异常进行捕获处理; 2. (第2题) 定义方法void sanjiao(int a,int b,int c)中,不符
16、合条件 则抛出异常(if a+b=c(或a+c=b,b+c=a) then throw new IllegalArgumentException(),),再定义main方法,调用此方法,用 try.catch. finally语句并捕获异常; 3. (第3题) 定义三角形类及相应的方法, 在定义的方法中对不符合条件则 抛出异常(如上题) ,再定义main方法,对正确的数据输出正确信息,否则 捕获异常; 实验七输入输出流 一、实验目的: 熟悉Java的文件读写机制,练习输入输出流的使用。 二、实验内容: 1、键盘输入10个整数,从小到大进行排序。 2、接收键盘输入的字符串,用FileInputS
17、tream类将字符串写入文件,用 FileOutputStream类读出文件内容显示在屏幕上。 3、将一个文本文件的内容按行读出,每读出一行就顺序加上行号,并写入 到另一个文件中。 三、实验要求: 1. 通过实验掌握文件输入输出流的使用方法; 2. 程序必须能够从键盘接收字符串并保存在文件中; 3. 程序必须能够读出文件内容显示在屏幕上; 4. 写出实验报告。 四、实验步骤: 1(第1题)接收键盘输入字符串,再转化整数; 2. (第2、3题)编写主方法main(),其中实现接收键盘输入功能、文件操 作功能和文件内容输出功能; 3. 调试运行程序,观察输出结果。 实验八多线程 一、实验目的: 熟
18、悉利用Thread类建立多线程方法。 熟悉利用Thread接口建立多线程方法。 二、实验内容: 1. 阅读下列程序,分析并上机检验其功能。 class DelayThread exends Thread private static int count=0; private int no; private int delay; public DelayThread() count+; no=count; public void run() try for (int i=0;i10;i+) delay=(int)(Math.random()*5000); sleep(delay); System.out.println(“Thread ”+no+” with a delay ”+delay); catch(InterruptedException e) public class MyThread public static void main(String args) DelayThread thread1=new DelayThread(); DelayThread thread2=new DelayThread(); thread1.start(); thread2.start();