首页 > 其他分享 >每日总结31

每日总结31

时间:2023-11-10 23:57:38浏览次数:37  
标签:总结 31 AbstractFile System public 每日 println fileName void

软件设计                  石家庄铁道大学信息学院

 

实验10:组合模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解组合模式的动机,掌握该模式的结构;

2、能够利用组合模式解决实际问题。

 

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

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

实验要求:

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

 

2. 提交源代码;

AbstractFile.java

package ruanshe10;

 

public abstract class AbstractFile {

    public abstract void add(AbstractFile element);

    public abstract void remove(AbstractFile element);

    public abstract void display();

 

}

Client.java

package ruanshe10;

 

public class Client {

    public static void main(String[] args) {

        AbstractFile obj1,obj2,obj3,obj4,obj5;

        Folder plate1,plate2,plate3;

        obj1 = new ImageFile("图片文件1");

        obj2 = new TextFile("文本文件1");

        plate1 = new Folder("父文件夹1");

        plate1.add(obj1);

        plate1.add(obj2);

 

        obj3 = new VideoFile("视频文件1");

        obj4 = new Folder("子文件夹1");

        plate2 = new Folder("父文件夹2");

        plate2.add(obj3);

        plate2.add(obj4);

 

        obj5 = new TextFile("文本文件2");

        plate3 = new Folder("父文件夹3");

        plate3.add(obj5);

        plate3.add(plate1);

        plate3.add(plate2);

 

        plate3.display();

 

    }

}

Folder.java

package ruanshe10;

 

import java.util.ArrayList;

 

public class Folder extends AbstractFile{

    private String fileName;

    private ArrayList fileList=new ArrayList();

    public Folder(String filename) {

        this.fileName=new String();

        this.fileName=filename;

    }

 

    @Override

    public void add(AbstractFile element) {

        fileList.add(element);

        System.out.println("新建文件夹");

    }

 

    @Override

    public void remove(AbstractFile element) {

        fileList.remove(element);

        System.out.println("删除文件夹");

    }

 

    @Override

    public void display() {

        for (Object obj:fileList){

            ((AbstractFile)obj).display();

        }

        System.out.println("打开文件夹");

    }

}

ImageFile.java

package ruanshe10;

 

public class ImageFile extends AbstractFile{

    private String fileName;

    public ImageFile(String filename) {

        this.fileName=new String();

        this.fileName=filename;

    }

 

    @Override

    public void add(AbstractFile element) {

        System.out.println("添加图片文件");

    }

 

    @Override

    public void remove(AbstractFile element) {

        System.out.println("移除图片文件");

    }

 

    @Override

    public void display() {

        System.out.println(fileName);

        System.out.println("打开图片文件");

    }

}

TextFile.java

package ruanshe10;

 

public class TextFile extends AbstractFile{

    private String fileName;

    public TextFile(String filename) {

        this.fileName=new String();

        this.fileName=filename;

    }

 

    @Override

    public void add(AbstractFile element) {

        System.out.println("添加文本文件");

    }

 

    @Override

    public void remove(AbstractFile element) {

        System.out.println("移除文本文件");

    }

 

    @Override

    public void display() {

        System.out.println(fileName);

        System.out.println("打开文本文件");

    }

}

VideoFile.java

package ruanshe10;

 

public class VideoFile extends AbstractFile{

 

    private String fileName;

    public VideoFile(String filename) {

        this.fileName=new String();

        this.fileName=filename;

    }

 

    @Override

    public void add(AbstractFile element) {

        System.out.println("添加视频文件");

    }

 

    @Override

    public void remove(AbstractFile element) {

        System.out.println("移除视频文件");

    }

 

    @Override

    public void display() {

        System.out.println(fileName);

        System.out.println("播放视频文件");

    }

}

 

3.注意编程规范。

 

 

标签:总结,31,AbstractFile,System,public,每日,println,fileName,void
From: https://www.cnblogs.com/mine-my/p/17825366.html

相关文章

  • 2023年11月10日总结
    更好的观看总结今天早上是练习赛,还是USACO的题目。最后一道题是白金组的,比较有难度。前三道题还是很简单的,具体可以看我的USACO作题记录1。前几次练习赛USACO的题目我就没有放在那个里面的,比较麻烦,以后就会放在那里面了,请谅解。题解也请参照那个里面的,这里就不放了。那就......
  • 每日总结20231110
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,天气很冷,还下雪来着,所以不愿意出被窝,所以上午下午赖床来着。2、今天晚上进行了C#的相关练习,对C#也有了一定的理解了。3、今天晚上打算复习复习数学,明天有考试,加油,加油,加油!......
  • To_Heart—总结——连通块 dp(抑或 连续块 dp)
    简介有一类问题,他们需要计算满足在序列上插入给定顺序的元素,其贡献/限制只与两旁的元素有关,但元素插入的位置是不一定的,所以会有代价的最值和方案数的统计。而对于这类问题,我们其实可以不关心每一次插入的具体位置在哪里,而只关注他的相对位置(比如在某个数左边、在某个数左边且与......
  • 2023-2024-1 20231402《计算机基础与程序设计》第7周学习总结
    2023-2024-120231402《计算机基础与程序设计》第7周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第7周作业这个作业的目标自学计算机科学概论第8章,《C语言程序设计》第6章作业正......
  • 2023-2024 20231404高伟光《计算机基础与程序设计》第七周学习总结
    作业信息作业班级23级14班作业要求第七周要求作业目标自主学习计算机概论第八章,学习c语言第六章作业正文此博客教材内容总结计算机概论:应用层涉及了数据结构,本章介绍了栈(先进后出),队列(先进先出),列表(线性,无线),树,二叉树(每个节点只有一个父母节点,两个子节点),二......
  • CF1316D Nash Matrix(构造/dfs)
    题目第一次做构造题,做了两节晚自习qwq一开始我完全是正着想,首先\(X\)是显然的,但其他的点就不好做了,然后我就想,可行的一般结论推不出,那就想反例,然后我想啊想......倒是想到了几个,比如说环与环之间不能有相交,环内外的点不能互相到达,跟本举不完,而且也不好实现,还是要想一般结论......
  • NOIP2023模拟16联测37 总结
    NOIP2023模拟16联测37总结\(T1\)求有多少区间的异或和为\(k\)的因子,\(n,k\le10^5\)。看到异或就想到了前几天的拿到按位考虑的题目,想了半小时没想到。突然想前缀和,对每个\(k\)的因子记录一下\(a\oplusk\)的数量就好了。\(T2\)每次可以删去一端的数或删去中间......
  • WPF控件设计艺术1按钮与自定义控件设计总结
    框架.NET6.0编译器:vsCommunity2022基于C#大致框架代码分享纯文本按钮TextOnlyButton资源字典分享<ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">......
  • 2023.11.10——每日总结
    学习所花时间(包括上课):9h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习;我了解到的知识点:1.丑人多作怪明日计划:学习......
  • Neural Networks投稿要求总结
    自用,NN投稿要求,相关的部分的中文版翻译,原文链接:https://www.sciencedirect.com/journal/neural-networks/publish/guide-for-authorsNeuralNetworks投稿要求介绍国际神经网络学会、欧洲神经网络学会和日本神经网络学会的官方期刊。论文类型Articles考虑原创的长篇文章时,应......