Java面向对象程序设计实验报告(实验五 接口的练习)

该实验报告展示了使用Java进行面向对象编程,涉及接口的应用。教师和学生类实现了问候和工作接口,乐器类如钢琴和小提琴实现了演奏接口。在测试类中,对不同乐器进行了弹奏测试,演示了接口的多态性。
摘要由CSDN通过智能技术生成

作者:命运之光 
专栏:Java面向对象程序设计实验报告

目录

✨一、需求设计

✨二、概要设计

✨三、详细设计

✨四、调试结果

✨五、测试结果

✨附录:源程序代码(带注释)

demo5类

Instrument类

Piano类

play类

Student类

Teacher类

Violin类

work类 


实验五 接口的练习

实验环境:Eclipse+JDK

实验目的:

  1. 掌握并理解面向对象的编程思想;
  2. 熟练掌握接口的定义及使用;
  3. 掌握实现类的特点及其使用。

实验内容:

1、模拟上课场景:创建教师类和学生类,两个类都实现了问候接口和工作接口,运行效果如下:

 

2、请使用接口编码实现如下需求:乐器(Instrument)分为:钢琴(Piano)、小提琴(Violin).各种乐器的弹奏( play )方法各不相同。编写一个测试类InstrumentTest,要求:编写方法testPlay,对各种乐器进行弹奏测试。要依据乐器的不同,进行相应的弹奏。在main方法中创建不同的乐器对象,通过testPlay的弹奏测试方法进行测试。 


以下是实验报告内容

✨✨前言:由于五一假期导致最后一节Java上机实验课没有上,所以不是很清楚实验报告的具体要求,我就按照之前数据结构实验报告的格式写了这次的Java上级报告,有需要的还是直接复制粘贴就行了,不过这次我写的比较敷衍,自己要上交实验报告的话,最好还是稍微修改美化一下🦄。

✨一、需求设计

  1. 模拟上课场景:创建教师类和学生类,两个类都实现了问候接口和工作接口

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();
}

  点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

评论 40
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值