Java实验5.doc_第1页
Java实验5.doc_第2页
Java实验5.doc_第3页
Java实验5.doc_第4页
Java实验5.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

12计算机本科面向对象程序设计(JAVA)实验报告班级:12计本 3 班 姓名:王海燕日期:2014.4.14 实验 五 实验名称: 抽象类与接口 1 实验目的(1) 掌握类的继承关系和派生方法。(2) 掌握多态的概念和使用。(3) 掌握接口的定义与使用。(4) 掌握包的概念与使用2 实验任务第一部分:练习返回值与形参为为引用类型的方法的定义 教材144页5-12、5-13。第二部分:做在线测试-章节测试-类的题目,直接提交,把提交的结果页面截图黏贴到报告中。注:测试成绩不计入期末评定成绩。第三部分:(1) 为实验四中定义的矩形类派生一个子类:长方体类。若长方体类的操作是求周长、面积和体积,则这个子类除了从父类那里继承的方法之外,还需要哪些方法?列出长方体类的所有域和方法。编程检查、运行所编写长方体类。(2) 编写Applet程序测试以上类与子类。第四部分:(3) 定义接口Figure,其继承关系如下图。增加一个PrintItMyWay()抽象方法,方法没有形参,返回值为String。将公共部分抽象出来定义到接口中? 答案(4) 改写矩形类,使之实现Figure接口,用PrintItMyWay()方法将矩形的相关信息(长、宽、周长、面积)返回为字符串形式。答案(5) 改写长方体类,覆盖printItMyWay()方法,将长方体边长、周长、面积、体积信息形成字符串信息返回。(6) 在Figure接口上增加一个新的printItMyWay(Graphics2D g)方法,这个方法给定一个图形对象形参,返回值为空。其功能是利用Graphics2D类打印对应的图形形状。保持矩形不变,编译运行,有什么结果?为什么?在矩形中实现新定义的printItMyWay(Graphics2D g)方法,调用Graphics2D中相应方法打印矩形,保持长方体不变,编译运行,有什么结果?为什么?在长方体中实现printItMyWay(Graphics2D g)。调用Graphics2D中相应方法打印长方体图形。(7) 编写Applet类测试,创建矩形和长方体对象,在paint方法中利用传递过来的Graphics对象g获取Graphics2D g2d;public void paintComponent(Graphics g) Graphics2D g2 = (Graphics2D)g;,实现各自信息输出以及图形绘制。(8) 将矩形和长方体组织成一个包MyFigure。修正程序。(9) 编写Applet程序测试以上类与子类,输出信息,打印图形。Figure形状Rectangle矩形长方体rectangularCircle圆形Clinder圆柱3. 实验步骤: 第一部分:class ComplexNumber double m_dRealPart; double m_dImaginPart;ComplexNumber( ) m_dRealPart=0; m_dImaginPart=0;ComplexNumber(double r,double i) m_dRealPart=r; m_dImaginPart=i;double getRealPart() return m_dRealPart;double getImaginaryPart() return m_dImaginPart;void setRealPart(double d) m_dRealPart=d;void setImaginaryPart(double d) m_dImaginPart=d;ComplexNuber complexAdd(ComplexNuber c) c.m_dRealPart+= m_dRealPart; c.m_dImaginPart+= m_dImaginPart; return c;ComplexNuber complexAdd(double c) m_dRealPart += c; return this;ComplexNuber complexMinus(ComplexNuber c) c.m_dRealPart-= m_dRealPart; c.m_dImaginPart-= m_dImaginPart; return c;ComplexNuber complexMinus(double c) m_dRealPart - = c; return this;ComplexNuber complexMulti(ComplexNuber c) c.m_dRealPart= c.m_dRealPart*this.m_dRealPart- c.m_dImaginPart*this. m_dImaginPart; c. m_dImaginPart= this. m_dImaginPart* c.m_dRealPart+ this.m_dRealPart* c.m_dImaginPart; return c;ComplexNuber complexMulti(double c) m_dRealPart= c.m_dRealPart*this.m_dRealPart; m_dImaginPart= this.m_dRealPart* c.m_dImaginPart; return this;void toString() return(m_dRealPart +”+”+ m_dImaginPart+”i”);第二部分:第三部分:第三部分:源代码:package zhang;import java.applet.*;import java.awt.*;import java.awt.event.*;/主类。Applet程序。测试矩形类和其长方体子类。public class square1 extends Applet implements ActionListener Label prompt1,prompt2,prompt3,prompt4;TextField input1,input2,input3;/窗框组成各部分初始化。public void init()prompt1 = new Label(Please enter the lenght,width,height of the cubiod.);input1 = new TextField(5);input2 = new TextField(5);input3 = new TextField(5);prompt2 = new Label(); /就算标签没内容,也要初始化。一开始以为不需要写。记一笔。prompt3 = new Label();prompt4 = new Label();add(prompt1);add(input1);add(input2);add(input3);add(prompt2);add(prompt3);add(prompt4);input1.addActionListener(this);input2.addActionListener(this);input3.addActionListener(this);/执行Applet程序的各个功能。public void actionPerformed(ActionEvent e)double length,width,height,per,area,vol;/字符串类型转换为浮点类型。从输入框中分别得到长度、宽度和高度的值。length = Double.parseDouble(input1.getText();width = Double.parseDouble(input2.getText();height = Double.parseDouble(input3.getText();/构造函数声明一个长方体类的对象。Cuboid test = new Cuboid(length,width,height);/调用长方体类中的方法,分别求长方体的周长、面积和体积。per = test.CouPer(length, width); /继承的父类的求周长的方法。求的是长方体的底面周长。area = test.CouArea(length, width); /继承的父类的求面积的方法。求的是长方体的底面面积。vol = test.CouVol(length,width,height);/以下为计算结果在窗框中输出。prompt2.setText(The perimeter of the cuboid is +String.valueOf(per);prompt3.setText(The area of the cuboid is +String.valueOf(area);prompt4.setText(The volume of the cuboid is +String.valueOf(vol);/矩形类。class Recdouble length;double width;/无参数构造函数。Rec()length = 0.0;width = 0.0;/带参数构造函数。Rec(double x,double y)length = x;width = y;/计算矩形周长的方法。double CouPer(double length,double width)double per;per = 2*(length+width);return per;/计算矩形面积的方法。double CouArea(double length,double width)double area;area = length*width;return area;/长方体类。继承了矩形类。class Cuboid extends Rec/长方体的域。分别为长、宽和高。double length,width,height;/无参数构造方法。Cuboid()length = width = height = 0.0;/带参数构造方法。Cuboid(double length1,double width1,double height1)length = length1;width = width1;height = height1;/计算长方体体积的方法。double CouVol(double length,double width,double height)double vol;vol = length*width*height;return vol;运行界面:第四部分:源代码:package test;import java.applet.Applet;import java.awt.*;interface Figure public abstract String PrintItMyWay(); public abstract void printItMyWay(Graphics2D g);public class Yun extends Applet Rectangle r1=new Rectangle(200,100); Rectangular r2=new Rectangular(150,100,70); Circle c1=new Circle(500,50,100); Clinder c2=new Clinder(650,40,50,100); public void paint(Graphics g) Graphics2D g2d =(Graphics2D)g; g2d.setColor(Color.BLUE); r1.printItMyWay(g2d);/绘画矩形 r2.printItMyWay(g2d);/绘画长方体 c1.printItMyWay(g2d);/绘画圆 c2.printItMyWay(g2d);/绘画圆柱 g.setColor(Color.black); g.drawString(r1.PrintItMyWay(),50,200);/输出各图形的信息 g.drawString(r2.PrintItMyWay(),50,230); g.drawString(c1.PrintItMyWay(),50,260); g.drawString(c2.PrintItMyWay(),50,290); class Rectangle implements Figure int length,width; Rectangle() length=1; width=1; Rectangle(int a,int b) length=a; width=b; public int getGrith() return 2*(length+width); public int getArea() return length*width; public String PrintItMyWay() return 矩形的长为:+length+ 宽为:+width+ 周长为:+getGrith()+ 面积为:+getArea(); public void printItMyWay(Graphics2D g) g.drawRect(30,40,length,width); class Rectangular extends Rectangle int height; Rectangular() super(); height=1; Rectangular(int a,int b,int c) super(a,b); height=c; public int getL() return 4*(length+width+height); public int getS() return length*width+length*height+width*height; public int getV() return length*width*height; public String PrintItMyWay() return 长方体的长为:+length+ 宽为:+width+ 高为+height+ 周长为:+getL()+ 面积为:+getS()+ 体积为:+getV(); public void printItMyWay(Graphics2D g)/分别绘画长方体的三个可见面 g.drawPolygon(new int300,280,280+length,300+length,new int40,80,80,40, 4); g.drawPolygon(new int280,280,280+length,280+length,new int80,80+height,80+height,80, 4); g.drawPolygon(new int280+length,280+length,300+length,300+length,new int80,80+height,40+height,40, 4); class Circle implements Figure int x,y; int r; Circle() x=1; y=1; r=1; Circle(int a,int b,int c) x=a; y=b; r=c; public double getL() return 2*3.14*r; public double getS() return 3.14*r*r; public String PrintItMyWay() return 圆的圆心坐标为

温馨提示

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

评论

0/150

提交评论