收藏 分销(赏)

java实验2.doc

上传人:人****来 文档编号:4345679 上传时间:2024-09-09 格式:DOC 页数:13 大小:62.50KB
下载 相关 举报
java实验2.doc_第1页
第1页 / 共13页
java实验2.doc_第2页
第2页 / 共13页
java实验2.doc_第3页
第3页 / 共13页
java实验2.doc_第4页
第4页 / 共13页
java实验2.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

1、实验项目名称: 面向对象编 实验学时: 8 同组学生姓名: 实验地点: 1514 /A203 实验日期: 4、13/4、15/4、20/4、22 实验成绩: 批改教师: 王倩倩 批改时间: 一、实验目得与要求(1)熟练掌握Java语言类定义得基本语法;(2)熟练掌握类成员得访问控制,对象建立得方法;(3)熟练掌握类构造方法、成员方法得定义与重载;(4)熟练掌握类继承、多态与抽象性;(5)熟练掌握接口得定义与实现方法;(6)掌握基本得异常处理方法;(7)调试程序要记录调试过程中出现得问题及解决办法;(8)编写程序要规范、正确,上机调试过程与结果要有记录,不断积累编程及调试经验;(9) 做完实验后

2、给出本实验得实验报告。二、实验仪器与设备奔腾以上计算机,Windows 操作系统,装有JDK1、7与Eclipse软件。三、实验过程(1) 设计复数类,成员变量包括实部与虚部,成员方法包括实现复数加法、减法、字符串描述、比较就是否相等等操作。(2) 设计三角形类,继承图形抽象类,实现面积接口与周长接口,计算三角形面积与周长。(3) 包得建立与使用:设计计算器类Calculator,计算加、减、乘、除,并且打包为mypackage。观察源文件目录下就是否生成了mypackage文件夹,在该文件夹中就是否有Calculate、class文件。编辑PackageDemo、java,保存在Calcul

3、ator、java同一目录下,引用计算器类得各方法显示计算结果。(4) 编码实现多态在工资系统中得应用:给出一个根据雇员类型利用abstract方法与多态性完成工资单计算得程序。Employee就是抽象类,Employee得子类有Boss(每星期发给她固定工资,而不计工作时间)、missionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产得产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例得Employee得每个子类都声明为final,因为不需要再继承它们生成子类。在主测试类Test中测试各类雇员工资计算结果。提示:对所有雇员类

4、型都使用earnings方法,但每个人挣得工资按她所属得雇员类计算,所有雇员类都就是从超类Employee派出生得。在超类中声明earnings为抽象方法,并且对于每个子类都提供恰当得earnings得实现方法。为了计算雇员得工资,程序仅仅使用雇员对象得一个超类引用并调用earnings方法。在一个实际得工资系统中,各种Employee对象得引用可以通过一个Employee引用数组来实现。程序依次使用数组得每个元素(Employee引用)调用每个对象得earnings方法。Employee类定义如下:abstract class Employeeprivate String firstName

5、;private String lastName;public Employee(String first,String last) firstName=first; lastName=last; public String getEmployeeNamereturn firstName;public String getLastName return lastName;public String toStringreturn firstName+lastName;public abstract String earnings;(5)异常得捕获:计算两数相除并输出结果。使用三个catch子句,

6、分别捕捉输入输出异常、除数为0得异常与参数输入有误异常。import java、io、*;class Ex1public static void main(String args ) try BufferedReader strin=new BufferedReader( new InputStreamReader(System、in);/建立输入流缓冲区 System、out、print(请输入除数:); String cl=strin、readLine;/键盘输入 int a=Integer 、parseInt(cl); System 、out 、print(请输入被除数:); cl=st

7、rin 、readLine; int b=Integer 、parseInt(cl); int c=b/a; System 、out 、println(商为:+c); /捕获与I/O有关得异常(空白处补全捕获语句) /捕获数值转化时得异常,如不能将字符转化成数值 /捕获除数为0得异常 编译并运行,当产生输入输出异常时显示异常信息;当输入除数为0时,出现算术异常,提示除数为0,并要求重新输入;当输入得不就是整数时,如将30输成了3o,出现数值格式异常,提示输入整数。思考:就是否还有其她异常需要捕获处理?(6)编写程序包含自定义异常MyException,当100被13与4除时抛出该异常,其余除数

8、显示商值。要求:(1) 注意选用适当得类成员修饰符(private、protected、public等),比较它们得使用情况;(2) 养成良好得编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包得命名方式如two、num1表示实验二得第一题;(3) 学会使用Eclipse得各种调试方法;(4) 学会查阅Java API文档,如查找异常类得使用方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)(1) 代码如下:package shiyan2_1;public class plexnumber private double rea

9、l,imag;public plexnumber(double r,double i)this、real=r;this、imag=i;public plexnumber add(plexnumber c)plexnumber temp=new plexnumber(0,0);temp、real=this、real+c、real;temp、imag=this、imag+c、imag;return temp;public plexnumber sub(plexnumber c)plexnumber temp=new plexnumber(0,0);temp、real=this、realc、real

10、;temp、imag=this、imagc、imag;return temp;public boolean equals(plexnumber c)if( this=c|this、real=c、real&this、imag=c、imag)return true;return false;public String toStringreturn this、real+this、imag+i;public static void main(String args)plexnumber a=new plexnumber(1,2);System、out、println(第一个虚数为:+a、toStrin

11、g);plexnumber b=new plexnumber(1,2);System、out、println(第二个虚数为:+b、toString);System、out、println(两个徐庶得与:+a、add(b)、toString);System、out、println(两个徐庶得差:+a、sub(b)、toString);if(a、equals(b)System、out、println(两个虚数相等);elseSystem、out、println(两个虚数不相等);(2) 代码如下:Point类:package shiyan2_2;public class Point public

12、int x,y;public Point(int x,int y)this、x=x;this、y=y;public Pointthis(0,0);public String toStringreturn Point(+this、x+,+this、y+);figure类:package shiyan2_2;public class figure public Point point1;protected String shape;protected figure(Point point)this、point1=point;protected figure(Point point,String s

13、hape)this、point1=point;this、shape=shape;protected figurethis(new Point);Triangle类:package shiyan2_2;public class Triangle extends figure implements Area,Perimeterpublic Point point2,point3;protected double a,b,c;public Triangle(Point p1,Point p2,Point p3)super(p1,三角形);this、point2=p2;this、point3=p3;t

14、his、a=Math、sqrt(point1、xpoint2、x)*(point1、xpoint2、x)+(point1、ypoint2、y)*(point1、ypoint2、y);this、b=Math、sqrt(point2、xpoint3、x)*(point2、xpoint3、x)+(point2、ypoint3、y)*(point2、ypoint3、y);this、c=Math、sqrt(point3、xpoint1、x)*(point3、xpoint1、x)+(point3、ypoint1、y)*(point3、ypoint1、y);public Triangle(Point p1,

15、double a,double b,double c)super(p1,三角形);this、a=a;this、b=b;this、c=c;public double areadouble s=(a+b+c)/2;return Math、sqrt(s*(sa)*(sb)*(sc);public double perimeterreturn a+b+c;public String toStringreturn this、getClass、getName+this、shape+,三点坐标+this、point1+,+(this、point2=null?null:this、point2、toString

16、)+,+(this、point3=null?null:this、point3、toString)+,三边长+String、format(%1、2f,%1、2f,%1、2f,this、a,this、b,this、c);Area接口:package shiyan2_2;public interface Area public abstract double area;Perimeter接口:package shiyan2_2;public interface Perimeterpublic abstract double perimeter;Test类:package shiyan2_2;publ

17、ic class textpublic static void main(String args) Triangle tr=new Triangle(new Point(100,100),new Point(100,130),new Point(140,130);Area ar=tr;System、out、println(tr、toString);System、out、println(面积为:+String、format(%1、2f,ar、area);Perimeter pe=tr;System、out、println(周长为:+String、format(%1、2f,pe、perimeter

18、);(3) 代码如下:package mypackage;public class calculator private double x;public calculator(double xx)this、x=xx;public double add(calculator c)return (this、x+c、x);public double sub(calculator c)return (this、xc、x);public double mul(calculator c)return (this、x*c、x);public double div(calculator c)return (t

19、his、x/c、x);public String toStringreturn +this、x+ ;package mypackage;public class PackageDemopublic static void main(String args) calculator aa=new calculator(1);calculator bb=new calculator(1);System、out、println(加法:+aa、toString+bb、toString+=+aa、add(bb);System、out、println(减法:+aa、toString+bb、toString+

20、=+aa、sub(bb);System、out、println(乘法:+aa、toString+*+bb、toString+=+aa、mul(bb);System、out、println(除法:+aa、toString+/+bb、toString+=+aa、div(bb);(4) 代码如下:Employee类:package shiyan2_4;public abstract class Employee public Employeeprivate String firstName;private String lastName;public Employee(String first,St

21、ring last) firstName=first; lastName=last; public String getEmployeeNamereturn firstName;public String getLastName return lastName;public String toStringreturn firstName+lastName;public abstract String earnings; Employee类:package shiyan2_4;public final class Boss extends Employeepublic String earnin

22、gsreturn 通过Boss得工资计算公式计算出老板得工资;missionWorker类:package shiyan2_4;public final class missionWorker extends Employeepublic String earningsreturn 通过missionWorker得工资计算公式计算出老板得工资;HourlyWorke类:package shiyan2_4;public final class HourlyWorker extends Employeepublic String earningsreturn 通过HourlyWorker得工资计算

23、公式计算出老板得工资;PieceWorker类:package shiyan2_4;public final class PieceWorker extends Employeepublic String earningsreturn 通过PieceWorker得工资计算公式计算出老板得工资;Text类:package shiyan2_4;public class textpublic static void main(String args)Employee em=new Boss;System、out、println(em、earnings);em=new missionWorker;Sy

24、stem、out、println(em、earnings); em=new PieceWorker;System、out、println(em、earnings);em=new HourlyWorker;System、out、println(em、earnings);(5) 代码如下:package shiyan2_5;import java、io、*;public class Ex1 public static void main(String args ) String cl=null; try BufferedReader strin=new BufferedReader(new Inp

25、utStreamReader(System、in);/建立输入流缓冲区 System、out、print(请输入除数:); cl=strin、readLine;/键盘输入 int a=Integer 、parseInt(cl); System 、out 、print(请输入被除数:); cl=strin 、readLine; int b=Integer 、parseInt(cl); int c=b/a; System 、out 、println(商为:+c); catch(IOException ex) System、out、println(I/O有关得异常); catch(NumberFor

26、matException ex) System、out、println(cl+字符串不能转换成整数); catch(ArithmeticException ex) System、out、println(除数不能0); (6) 代码如下:自定义异常类:package shiyan2_6;public class MyException extends Exceptionpublic MyException(String s) super(s);public MyException super;package shiyan2_6;import java、io、BufferedReader;impo

27、rt java、io、IOException;import java、io、InputStreamReader;public class Divide public static double div(double a,double b) throws MyException if(a=100&(b=4|b=13) throw new MyException(不符合规范); else return a/b; public static void main(String args ) String cl=null;double a,b; try BufferedReader strin=new

28、BufferedReader(new InputStreamReader(System、in); System、out、print(请输入被除数:); cl=strin、readLine; a=Double、parseDouble(cl); System 、out 、print(请输入除数:); cl=strin 、readLine; b=Double、parseDouble(cl); System 、out 、println(商为:+Divide、div(a,b); catch(IOException ex) System、out、println(I/O有关得异常); catch(Numbe

29、rFormatException ex) System、out、println(cl+字符串不能转换成整数); catch(ArithmeticException ex) System、out、println(除数不能0); catch(MyException ex) System、out、println(输入得数据不规范); 四、实验结果与分析第(1)题实验结果:第一个虚数为:1、0+2、0i第二个虚数为:1、0+2、0i两个徐庶得与:2、0+4、0i两个徐庶得差:0、0+0、0i两个虚数相等第(2)题实验结果:shiyan2_2、Triangle三角形,三点坐标Point(100,100)

30、,Point(100,130),Point(140,130),三边长30、00,40、00,50、00面积为:600、00周长为:120、00第(3)题实验结果:加法: 1、0 + 1、0 =2、0减法: 1、0 1、0 =0、0乘法: 1、0 * 1、0 =1、0除法: 1、0 / 1、0 =1、0第(4)题实验结果:通过Boss得工资计算公式计算出老板得工资通过missionWorker得工资计算公式计算出老板得工资通过PieceWorker得工资计算公式计算出老板得工资通过HourlyWorker得工资计算公式计算出老板得工资第(5)题实验结果:请输入除数:3o3o字符串不能转换成整数请输入除数:0请输入被除数:13除数不能0第(6)题实验结果:请输入被除数:100请输入除数:4输入得数据不规范请输入被除数:100请输入除数:13输入得数据不规范

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服