2022年实验继承与接口归类 .pdf
《2022年实验继承与接口归类 .pdf》由会员分享,可在线阅读,更多相关《2022年实验继承与接口归类 .pdf(15页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、山 西 大 学 计 算 机 与 信 息 技 术 学 院实验报告姓名学号专业班级课程名称 Java实验实验日期成绩指导教师批改日期实 验 名 称实验 6 继承与接口 实验目的 1、掌握 java 继承中父类及其子类的定义方法。2、掌握子类重写父类同名方法的方法。3、掌握接口的用法。(1) 学习如何定义接口 ; (2) 掌握接口的实现方式 ; (3) 使用实现了接口的类 ; (4) 理解接口与抽象类的区别。 实验要求 1、 复习理论教学中所学的内容。2、 认真进行实验预习,查阅参考书,书写源程序,书写实验预习报告。3、 认真总结实验并书写实验报告。 实验内容 1、 类的继承性练习(1) 程序源代码
2、如下。publicclass Student protected String xm; /姓名,具有保护修饰符的成员变量protectedint xh;/学号void setdata(String xm,int xh) /设置数据的方法this .xm=xm; this .xh=xh; publicvoid print() /输出数据的方法 System.out.println(xm+, +xh); class TestStudent/测试类publicstaticvoid main(String args) Student s = new Student(); s.setdata(小红 ,
3、2010242555); s.print(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - (2) 编译源并运行程序。贴图如下图一(二)创建将被继承的类(1) 程序功能: 通过Student类产生子类 CollegeStudent,其不仅具有父类的成员变量xm (姓名) 、xh(学号),还定义了新成员变量xy (学院)、 bj (bj )。在程序中调用了父类的print 方法,同时可以看出子类也具有该方法。程序代码 :pu
4、blicclass CollegeStudent extends Student protected String xy; protectedint bj; void setdata(String xm,int xh,String xy,int bj) super .setdata(xm, xh); this.xy = xy; this.bj = bj; publicvoid print() super .print(); System.out.print(学院: +xy+ 班级: +bj); class TestCollegeStudent publicstaticvoid main(Str
5、ing args) CollegeStudent cs = new CollegeStudent(); cs.setdata(小蓝 , 2010242555, 计算机学院 , 1); cs.print(); 运行结果贴图 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - 图二(三)了解成员方法的覆盖方式(1)编写覆盖了 Object 类toString方法的一个类,并用System.out.println()输出该类的一个对
6、象。程序代码 :publicclass OverWriteToString private String str; public OverWriteToString() public OverWriteToString(String str) this.str = str; public String ToString() returnsuper .toString()+n+str; publicstaticvoid main(String args) OverWriteToString o = new OverWriteToString(This is a method +to overwr
7、ite ToString method!); System.out.println(o.ToString(); 运行结果贴图 : 图三(2)试着以 Point 类为例,尝试为 Object 类的 clone()和equals ()方法进行覆盖,Point 类包含名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - 私有成员 x,y, 构造方法 1(包含两个参数a,b),构造方法 2(参数为 Point p), clone 方法, e
8、quals方法, toString方法。用 TestPoint类进行测试。程序代码 :publicclass Point privateint x; privateint y; public Point() public Point(int a, int b) x = a; y = b; public Point(Point p) x = p.x; y = p.y; /重写 equals()方法publicboolean equals(Object o) if (o instanceof Point) return (x=(Point)o).x & y=(Point)o).y); elsere
9、turnfalse; /重写 toString()方法public String toString() returnsuper .toString()+n该点的坐标为(+x+,+y+); /重写 clone()方法public Object clone() throws CloneNotSupportedException returnnew Point(this ); class TestPoint publicstaticvoid main(String args) throws CloneNotSupportedException Point p = new Point(2,3); Po
10、int p1= new Point(p); Point p2 = (Point)p.clone(); System.out.println(p与p1相等吗? +p.equals(p1); System.out.println(p与p2相等吗? +p.equals(p2); System.out.println(p); System.out.println(p1); System.out.println(p2); 运行结果贴图 : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页
11、,共 15 页 - - - - - - - - - 图四(四) this 、 super 和super()的使用(1) 程序功能:说明this 、 super 和super() 的用法。程序首先定义Point (点)类,然后创建点的子类 Line (线)。最后通过TestLine 类输出线段的长度。程序中通过super(a,b)调用父类Point 的构造方法为父类的x 和y 赋值。在子类 Line 的setLine 方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this 引用,告诉编译器是为当前类的成员变量赋值。在length 和toString 方法中使用父类成员变量时,使用su
12、per 引用,告诉编译器使用的是父类的成员变量。程序代码 :publicclass Line extends Point private Point p1; private Point p2; public Line() super (5,5); public Line(int x1, int y1, int x2, int y2) super (5,5); p1 = new Point(x1,y1); p2 = new Point(x2,y2); public Line(Point p1,Point p2) super (5,5); this .p1 = p1; this .p2 = p2;
13、 publicvoid setLine(Point p1,Point p2) this .p1 = p1; this .p2 = p2; publicdouble legth() return Math.sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 15 页 - - - - - - - - - public String toString() returnsuper
14、 .toString()+n该线起点为:(+p1.x+,+p1.y+) + 终点为: (+p2.x+,+p2.y+); class TestLine publicstaticvoid main(String args) Point p1 = new Point(); Point p2 = new Point(3,4); Line l = new Line(p1,p2); System.out.println(线l 的长度为: +l.legth(); System.out.println(l); 运行结果贴图 : 图五(五)接口的实现与运用实验任务 : 本实验的任务是设计和实现一个 Sounda
15、ble 接口 , 该接口具有发声功能 , 同时还能够调节声音大小。 Soundable 接口的 这些功能将会由 3 种声音 设备来具体实现 , 它们分 别是收音机Radio 、随身昕 Walkman 和手机 Mobilephone 。最后还要设计一个应用程序类来使用这些实现了Soundable 接口的声音设备类。程序运行时 , 先询问用户想听哪种设备 , 然后程序就会按照该设备的工作方式来发出声音。实验步骤 : (1) 仔细阅读程序 , 并完成其中的代码1代码 3。/ InterfaceTest.java import java.util.*; interface Soundable publ
16、icvoid increaseVolume(); publicvoid decreaseVolume(); publicvoid stopSound(); publicvoid playSound(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - class Radio implements Soundable publicvoid increaseVolume() System.out.println(增大收音机音量);
17、 publicvoid decreaseVolume() System.out.println(减小收音机音量); publicvoid stopSound() System.out.println(关闭收音机 ); publicvoid playSound() System.out.println(收音机播放广播); class Walkman implements Soundable publicvoid increaseVolume() System.out.println(增大随声听音量); publicvoid decreaseVolume() System.out.println(
18、减小随声听音量); publicvoid stopSound() System.out.println(关闭随声听 ); publicvoid playSound() System.out.println(随声听播放音乐); class MobilePhone implements Soundable publicvoid increaseVolume() System.out.println(增大手机音量 ); publicvoid decreaseVolume() System.out.println(减小手机音量 ); publicvoid stopSound() System.out.
19、println(关闭手机 ); publicvoid playSound() System.out.println(手机播放铃声 ); class People private String name; privateint age; publicvoid Listen(Soundable s) s.playSound(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - publicclass InterfaceTest p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年实验继承与接口归类 2022 实验 继承 接口 归类
限制150内