首页 分享 实验项目C、面向抽象和面向接口编程

实验项目C、面向抽象和面向接口编程

来源:萌宠菠菠乐园 时间:2026-04-02 16:08

一、实验目的

专题:继承基础和面向抽象编程

1、掌握继承的使用。

2、掌握Object 类 的基本用法。

3、理解和掌握抽象类的用法。

4、理解final关键字。

5、掌握和理解多态的运用。

专题:接口基础和面向接口编程

1、掌握接口的使用。

2、掌握和理解接口实现多态的运用。

3、理解和掌握匿名类的用法。

4、初步了解JDK8新特性和lambda 表达式 。

二、实验内容和主要步骤

专题:继承基础和面向抽象编程

继承基础实验Object类使用抽象类和抽象方法继承机制实现的多态

专题:接口基础和面向接口编程

接口基础接口机制的多态基础面向接口编程匿名类[选做]函数式接口和lambda表达式

三、实验结论和思考

1、问题:开发一个应用,模拟计算机对移动 存储 设备的读写,即移动存储设备有U盘、手机卡、移动硬盘、闪卡等设备。

作答要求

(1)概要描述你采用何种方法来模拟该应用。采用该方案的理由是什么?

:采用面向接口编程来模拟,通过编写接口去抽象设计数据的读与写方法,再编写不同设备的实现类去重写接口方法,节省代码。最后设计和编写计算机类,模拟调用具有数据交换的外部设备: u盘 、手机卡等,当需要再增添设备时,只需添加实现类去重写接口的读写方法,再在计算机类中调用即可,减少代码冗杂度,使得代码的实现更加灵活。

(2)在下面粘贴实现的各代码文件内容。注意标示和用文字描述清楚。

import static java.lang.System.out;

interface IExtDevice{

void read();

void write();

}

class UDisk implements IExtDevice{

@Override

public void read() {

out.println("读U盘...End");

}

@Override

public void write() {

out.println("写入U盘...End");

}

}

class SIMCard implements IExtDevice{

@Override

public void read() {

out.println("读手机卡...End");

}

@Override

public void write() {

out.println("写入手机卡...End");

}

}

class MobileHDD implements IExtDevice{

@Override

public void read() {

out.println("读移动硬盘...End");

}

@Override

public void write() {

out.println("写入移动硬盘...End");

}

}

class FlashCard implements IExtDevice{

@Override

public void read() {

out.println("读闪卡...End");

}

@Override

public void write() {

out.println("写入闪卡...End");

}

}

class Mycomputer{

private IExtDevice extDev;

IExtDevice getExtDev() {

return extDev;

}

public void setExtDev(IExtDevice extDev) {

this.extDev=extDev;

}

public void readDate() {

extDev.read();

}

public void writeDate() {

extDev.write();

}

}

public class APPTest {

public static void main(String[] arg) {

Mycomputer computer=new Mycomputer();

IExtDevice UDisk=new UDisk();

IExtDevice SIMCard=new SIMCard();

IExtDevice MobileHDD=new MobileHDD();

IExtDevice FalshCard=new FlashCard();

out.println("***接入u盘");

computer.setExtDev(UDisk);

computer.readDate();

computer.writeDate();

out.println("==========");

out.println("***接入手机卡");

computer.setExtDev(SIMCard);

computer.readDate();

computer.writeDate();

out.println("==========");

out.println("***接入移动硬盘");

computer.setExtDev(MobileHDD);

computer.readDate();

computer.writeDate();

out.println("==========");

out.println("***接入闪卡");

computer.setExtDev(FalshCard);

computer.readDate();

computer.writeDate();

out.println("==========");

}

}

java

(3)给出部分模拟执行的截图(至少2张)。

2、程序评价和改进。

问题背景:编程模拟和表达老虎Tiger和猫咪Cat等具体种类的生物都是一种动物。即它们都具有共同的名字属性name和运动行为run,只不过具体的名字叫法不同,运动行为的具体方式也不同。比如Tiger可以叫“一只东北虎”等,它是“在森林里猎物”,Cat可以叫“一只宠物猫”,它是“在沙发上卖萌”。为简单起见,模拟程序系统暂时只考虑运动行为run,将来该模拟程序系统可能还要扩展支持更多动物的特征。

版本0.9:下面是一个实现,暂且称为v0.9。

 

 

问题:请用 面向对象 思想和技术简单评价该版本的程序实现,并给出一个你认为更好的实现。

作答要求

(1)用面向对象思想和技术简单评价版本0.9的程序实现,指出其不足。

:通过建立两个类Tiger和Cat,各自定义了局部变量name和run()方法,后编写公有测试类AnimalTest去新建Tiger对象和Cat对象去调用run()方法,实现功能。不足:当添加的动物对象够多时,就得再新建很多个类,新建多个构造方法去标示name,以及多个run()方法,提高了代码的冗杂度。

(2)把你的改进版本实现的代码有条理的粘贴到下面。

import static java.lang.System.*;

abstract class Animal {

public abstract String run();

}

class Cat extends Animal{

public String run(){

return ("一只猫在沙发上卖萌");

}

}

class Tiger extends Animal{

public String run(){

return ("一只东北虎在森林里猎食n" );

}

}

public class AnimalTest {

public static void main(String[] args) {

Animal animal1=new Cat();

out.println(animal1.run());

Animal animal2=new Tiger();

out.println(animal2.run());

}

}

java

(3)简述改进版本的合理性。

:通过构建一个抽象类Animal,抽象类里构造了一个抽象方法run(),供子类Cat,Tiger去继承重写其抽象方法,若是还需要添加多个动物,直接新建个子类去继承父类Animal去重写其抽象方法即可,降低了代码量,降低了代码的冗杂度。

四、实验心得(必须填写)

在模拟计算机对移动存储设备的读写实现代码的过程中,我仔细思考了很多方法去想怎么实现功能,最后我联想到了面向接口的方法来模拟,因为通过编写接口去抽象设计数据的读与写方法,再编写不同设备的实现类去重写接口方法,节省代码。最后设计和编写计算机类,模拟调用具有数据交换的外部设备:u盘、 手机 卡等,当需要再增添设备时,只需添加实现类去重写接口的读写方法,再在计算机类中调用即可,减少代码冗杂度,使得代码的实现更加灵活。最终代码的设计和完美实现让我欢欣雀跃,获益良多。

相关知识

面向对象编程——以猫狗宠物商店出发
面向对象编程题汇总
JavaSE之面向对象编程
Java面向对象
Java接口在开发中的作用(interface)
面向对象编程答案3
java特性封装、抽象、继承、多态理论
面向对象编程:宠物与犬类的Python实现详解
Python基本思想——面向对象编程
java面向对象(推荐看一本书java编程思想)

网址: 实验项目C、面向抽象和面向接口编程 https://www.mcbbbk.com/newsview1361037.html

所属分类:萌宠日常
上一篇: 多多宠物翻译app
下一篇: 如何使自己不怕猫

推荐分享