首页 > 其他分享 >实验十

实验十

时间:2023-11-09 09:26:13浏览次数:23  
标签:void AbstractFile System fileName 实验 public out

[实验任务一]:组合模式

用透明组合模式实现教材中的“文件夹浏览”这个例子。

实验要求:

1.文件的执行不需真正实现,只需简单提示即可;

2.提交源代码;

3.注意编程规范。

 

 

public abstract class AbstractFile
{
    public abstract void add(AbstractFile element);
    public abstract void remove(AbstractFile element);
    public abstract void display();
}
public class Client
{
    public static void main(String a[])
    {
        AbstractFile obj1,obj2,obj3,obj4;
        Folder plate1,plate2,plate3;
        obj1=new ImageFile("a.jpg");
        obj2=new TextFile("b.txt");
        plate1=new Folder("Image_Text");
        plate1.add(obj1);
        plate1.add(obj2);
 
        obj3=new VideoFile("c.mp4");
        plate2=new Folder("Image_Video");
        plate2.add(obj1);
        plate2.add(obj3);
 
        obj4=new ImageFile("d.jpg");
        plate3=new Folder("Image_Text_Video_Folder");
        plate3.add(plate1);
        plate3.add(plate2);
        plate3.add(obj4);
 
        plate3.display();
 
    }
}
import java.util.*;

public class Folder extends AbstractFile
{
    private String fileName;
    private ArrayList<AbstractFile> fileList=new ArrayList();
    public Folder(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        fileList.add(element);
        System.out.println("添加文件夹");
    }
    public void remove(AbstractFile element)
    {
        fileList.remove(element);
        System.out.println("移动文件夹");
    }
    public void display()
    {
        System.out.println(fileName);
        for(Object object:fileList)
        {
            ((AbstractFile)object).display();
        }
        System.out.println("****文件夹显示****");
    }
}
public class ImageFile extends AbstractFile
{
    private String fileName;
    public ImageFile(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        System.out.println("添加图片文件");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("移动图片文件");
    }
    public void display()
    {
        System.out.print(fileName);
        System.out.println("图片文件");
    }
}
public class TextFile extends AbstractFile
{
    private String fileName;
    public TextFile(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        System.out.println("添加文本文件");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("移动文本文件");
    }
    public void display()
    {
        System.out.print(fileName);
        System.out.println("文本文件");
    }
}
public class VideoFile extends AbstractFile
{
    private String fileName;
    public VideoFile(String filename)
    {
        this.fileName=new String();
        this.fileName=filename;
    }
    public void add(AbstractFile element)
    {
        System.out.println("添加视频文件");
    }
    public void remove(AbstractFile element)
    {
        System.out.println("移动视频文件");
    }
    public void display()
    {
        System.out.print(fileName);
        System.out.println("视频文件");
    }
}

 

标签:void,AbstractFile,System,fileName,实验,public,out
From: https://www.cnblogs.com/usadingzhen/p/17818929.html

相关文章

  • 实验十一
    [实验任务一]:手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。实验要求:1.提交类图;2.提交源代码;3.注意编程规范。 publi......
  • Python实验:Socket编程
    实验六Socket编程一、实验目标:了解TCP协议原理、标准库socket的用法、熟悉Socket编程。1.TCP协议原理:TCP(TransmissionControlProtocol,传输控制协议)是一种面向连接的、可靠的、基于流的协议,用于在计算机网络中传输数据。它是互联网协议套件中的一部分,通常与IP(Internet......
  • 大型数据库实验二
    实验二--熟悉常用的HDFS操作1、向hdfs中上传任意文本文件,如果文件已经存在,由用户指定是追加文件内容还是覆盖文件内容(准备了两个文件-wordcount.txt和local.txt)我这里定义的是在wordcount.txt文件末尾追加local.txt里面的内容:这里定义的是用local.txt的文件内容覆盖掉原来......
  • 2008秋-计算机软件基础-实验三 参考源程序
    实验三参考源程序//软件基础教材79页习题6答案//EmanLee#include<stdio.h>#include<stdlib.h>#definem5//队列容量//定义队列的结构structqueue{intseq[m];//队列元素intquelen;//队列中元素个数intrear;//队列尾指针};//初始化队列......
  • 2008秋-计算机软件基础- 实验二 参考源程序
    实验二参考源程序/*Author:EmanLee,计算机软件基础教材P79,ex4设有一头为head的带头结点的单链表,其数据域为整形数据且递增有序。试写一算法,将元素插入链表适当的位置,以保持链表的有序性。*/#include<stdio.h>#include<stdlib.h>typedefintDataType;struc......
  • 2008秋-计算机软件基础-实验内容
    ------------------------------------------------------------------题目:实验C语言综合复习目的:掌握函数,结构体,指针的使用,预习线性表的顺序存储(顺序表)实验内容:1看PPT, 函数,结构体,指针章节。要求: -----------------------------------------------------------......
  • 实验三_OOP_张文瑞_202213260018
    任务1源代码:11#pragmaonce2233#include<iostream>44usingstd::cout;55usingstd::endl;6677classPoint{88public:99Point(intx0=0,inty0=0);1010~Point()=default;11111212intget_x()......
  • 软件设计实验8:适配器模式
    实验8:适配器模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解适配器模式的动机,掌握该模式的结构;2、能够利用适配器模式解决实际问题。 [实验任务一]:双向适配器实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。实验要求:1. 画出对应的类图; 2.......
  • 软件设计实验9:桥接模式
    实验9:桥接模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解桥接模式的动机,掌握该模式的结构;2、能够利用桥接模式解决实际问题。 [实验任务一]:两个维度的桥接模式用桥接模式实现在路上开车这个问题,其中,车可以是car或bus,路可以是水泥路或沥青路。实验要求......
  • 渗透测试第一次实验
     虚拟机和主机链接方式:桥接模式:就可与i将虚拟机看成是局域网中的独立主机(如下图,AB就是使用NAT模式)NAT模式:则是将物理机当作为路由器,虚拟机为内网中的一台主机(如下图,AC就是使用NAT模式)Host模式:就是将虚拟机和物理机看成一个网络,与外界隔绝        ......