✨作者:命运之光
目录
✨一、需求设计
✨二、概要设计
✨三、详细设计
✨四、调试结果
✨五、测试结果
✨附录:源程序代码(带注释)
demo5类
Instrument类
Piano类
play类
Student类
Teacher类
Violin类
work类
实验五 接口的练习
实验环境:Eclipse+JDK
实验目的:
- 掌握并理解面向对象的编程思想;
- 熟练掌握接口的定义及使用;
- 掌握实现类的特点及其使用。
实验内容:
1、模拟上课场景:创建教师类和学生类,两个类都实现了问候接口和工作接口,运行效果如下:
2、请使用接口编码实现如下需求:乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin).各种乐器的弹奏( play )方法各不相同。编写一个测试类InstrumentTest,要求:编写方法testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。在main方法中创建不同的乐器对象,通过testPlay的弹奏测试方法进行测试。
以下是实验报告内容
✨✨前言:由于五一假期导致最后一节Java上机实验课没有上,所以不是很清楚实验报告的具体要求,我就按照之前数据结构实验报告的格式写了这次的Java上级报告,有需要的还是直接复制粘贴就行了,不过这次我写的比较敷衍,自己要上交实验报告的话,最好还是稍微修改美化一下🦄。
✨一、需求设计
- 模拟上课场景:创建教师类和学生类,两个类都实现了问候接口和工作接口
2.使用接口编码实现如下需求:乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin).各种乐器的弹奏( play )方法各不相同。编写一个测试类InstrumentTest,要求:编写方法testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。在main方法中创建不同的乐器对象,通过testPlay的弹奏测试方法进行测试。
✨二、概要设计
第一题设计3个类,一个测试类demo5,一个教师类Teacher,一个学生类Student。第二题设计一个接口乐器(Instrument),两个类分别为钢琴(Piano)类和小提琴(Violin)类,最后在设计一个测试类InstrumentTest用来测试。在乐器(Instrument)接口中定义方法testPlay,用钢琴(Piano)类和小提琴(Violin)类重写方法testPlay。
✨三、详细设计
创建一个接口work,定义两个抽象方法wenhou和gongzuo
public interface work {
public abstract void wenhou();
public abstract void gongzuo();
}
创建一个教师类Teacher实现work重写wenhou和gongzuo
public class Teacher implements work {
public void wenhou()
{
System.out.println("mike:同学们好");
}
public void gongzuo()
{
System.out.println("mike:同学们开始做笔记");
}
}
创建一个学生类Student实现work重写wenhou和gongzuo
public class Student implements work{
public void wenhou()
{
System.out.println("peter:老师好");
}
public void gongzuo()
{
System.out.println("peter:老师开始上课");
}
}
创建一个接口play,定义一个抽象方法testPlay。
public interface play {
public abstract void testPlay();
}
创建一个钢琴(Piano)类实现play重写testPlay
public class Piano extends Instrument implements play{
public void all()
{
System.out.println("我们都属于乐器");
}
public void testPlay()
{
System.out.println("钢琴:我是钢琴,我的弹奏方式独特优美");
}
}
创建一个小提琴(Violin)类实现play重写testPlay
public class Violin extends Instrument implements play {
public void all()
{
System.out.println("我们都属于乐器");
}
public void testPlay()
{
System.out.println("小提琴:我是小提琴,我的弹奏方式独特优美");
}
}
✨四、调试结果
测试Teacher类,将同学们开始做笔记改成同学们开始听课,测试结果如下图所示:
测试结果正确。
✨五、测试结果
测试结果如图所示:
✨附录:源程序代码(带注释)
demo5类
package 命运之光;
public class demo5 {
public static void main(String args[])
{
System.out.println("----------第一题----------");
Teacher t=new Teacher();
Student s=new Student();
s.wenhou();
t.wenhou();
s.gongzuo();
t.gongzuo();
System.out.println("----------第二题----------");
Piano p=new Piano();
p.testPlay();
Violin v=new Violin();
v.testPlay();
}
}
Instrument类
package 命运之光;
public abstract class Instrument {
public abstract void all();
}
Piano类
package LiuShaoLong;
public class Piano extends Instrument implements play{
public void all()
{
System.out.println("我们都属于乐器");
}
public void testPlay()
{
System.out.println("钢琴:我是钢琴,我的弹奏方式独特优美");
}
}
play类
package 命运之光;
public interface play {
public abstract void testPlay();
}
Student类
package 命运之光;
public class Student implements work{
public void wenhou()
{
System.out.println("peter:老师好");
}
public void gongzuo()
{
System.out.println("peter:老师开始上课");
}
}
Teacher类
package 命运之光;
public class Teacher implements work {
public void wenhou()
{
System.out.println("mike:同学们好");
}
public void gongzuo()
{
System.out.println("mike:同学们开始听课");
}
}
Violin类
package 命运之光;
public class Violin extends Instrument implements play {
public void all()
{
System.out.println("我们都属于乐器");
}
public void testPlay()
{
System.out.println("小提琴:我是小提琴,我的弹奏方式独特优美");
}
}
work类
package 命运之光;
public interface work {
public abstract void wenhou();
public abstract void gongzuo();
}