资源预览内容
第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
第9页 / 共10页
第10页 / 共10页
亲,该文档总共10页全部预览完了,如果喜欢就下载吧!
资源描述
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 = h
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号