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

11.23每日总结

时间:2023-11-23 21:14:19浏览次数:30  
标签:总结 Member String 11.23 每日 public member void name

/AbstractChatroom.java
package org.example.test017;

import javax.swing.plaf.basic.BasicTreeUI;

public abstract class AbstractChatroom {
    public abstract void register(Member member);
    public abstract void sendText(String from, String to, String message);
    public abstract void sendImage(String from, String to, String image);
}

//ChatGroup.java
package org.example.test017;

import java.util.Hashtable;

public class ChatGroup extends AbstractChatroom {
    private Hashtable members = new Hashtable();

    @Override
        public void register(Member member) {
        if (!members.contains(member)) {
            members.put(member.getName(), member);
            member.setAbstractChatroom(this);
        }
    }

    @Override
        public void sendText(String from, String to, String message) {
        Member member = (Member)members.get(to);
        String newMessage = message;

        newMessage = message.replaceAll("日", "*");
        member.receiveText(from, newMessage);
    }

    @Override
        public void sendImage(String from, String to, String image) {
        Member member = (Member)members.get(to);

        if (image.length() > 5) {
            System.out.println("图片太大,发送失败!");
        }
        else {
            member.receiveImage(from, image);
        }
    }
}

//NewGroup.java
package org.example.test017;

import java.util.HashMap;
import java.util.Map;

public class NewGroup extends AbstractChatroom {
    Map<String, Member> table = new HashMap<>();

    @Override
        public void register(Member member) {
        table.put(member.getName(), member);
        member.setAbstractChatroom(this);
    }

    @Override
        public void sendText(String from, String to, String message) {
        if (message.length() > 100) {
            System.out.println("文本长度超过100,发送失败!");
        }
        else {
            Member member = table.get(to);
            if (member != null) {
                member.receiveText(from, message);
            }
        }
    }

    @Override
        public void sendImage(String from, String to, String image) {
        if (image.length() > 20) {
            System.out.println("图片大小超过20,发送失败!");
        }
        else {
            Member member = table.get(to);
            if (member != null) {
                member.receiveImage(from, image);
            }
        }
    }
}

//Member.java
package org.example.test017;

public abstract class Member {
    protected AbstractChatroom abstractChatroom;
    protected String name;

    public Member(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public AbstractChatroom getAbstractChatroom() {
        return abstractChatroom;
    }

    public void setAbstractChatroom(AbstractChatroom abstractChatroom) {
        this.abstractChatroom = abstractChatroom;
    }

    public abstract void sendText(String to, String message);
    public abstract void sendImage(String to, String image);

    public void receiveText(String from, String message) {
        System.out.println(from + "发送文本给" + this.name + ",内容为:" + message);
    }

    public void receiveImage(String from, String image) {
        System.out.println(from + "发送图片给" + this.name + ",内容为:" + image);
    }
}

//CommonMember.java
package org.example.test017;

public class CommonMember extends Member {
    public CommonMember(String name) {
        super(name);
    }

    @Override
        public void sendText(String to, String message) {
        System.out.println("普通会员发送信息:");
        abstractChatroom.sendText(name, to, message);
    }

    @Override
        public void sendImage(String to, String image) {
        System.out.println("普通会员不能发送图片!");
    }
}

//DiamondMember.java
package org.example.test017;

public class DiamondMember extends Member {
    public DiamondMember(String name) {
        super(name);
    }

    @Override
        public void sendText(String to, String message) {
        System.out.println("钻石会员发送信息:");
        abstractChatroom.sendText(name, to, message);
    }

    @Override
        public void sendImage(String to, String image) {
        System.out.println("钻石会员发送图片:");
        abstractChatroom.sendImage(name, to, image);
    }
}

//NewMember.java
package org.example.test017;

public class NewMember extends Member {
    public NewMember(String name) {
        super(name);
    }

    @Override
        public void sendText(String to, String message) {
        System.out.println("新会员发送文本消息:");
        abstractChatroom.sendText(name, to, message);
    }

    @Override
        public void sendImage(String to, String image) {
        System.out.println("新会员发送图片:");
        abstractChatroom.sendImage(name, to, image);
    }
}

//Client.java
package org.example.test017;

public class Client {
    public static void main(String[] args) {
        AbstractChatroom abstractChatroom = new NewGroup();
        Member m1, m2, m3;
        m1 = new NewMember("张三");
        m2 = new NewMember("李四");
        m3 = new NewMember("王五");

        abstractChatroom.register(m1);
        abstractChatroom.register(m2);
        abstractChatroom.register(m3);

        m1.sendText("李四", "早上好奥~");
        m2.sendText("张三", "早上好!");

        m2.sendImage("王五", "早上好.jpg");
        m3.sendImage("李四", "很高兴见到你~~~~~~~~~~~~~~~~~~~~~~~~~~~.jpg");
    }
}

运行结果

标签:总结,Member,String,11.23,每日,public,member,void,name
From: https://www.cnblogs.com/2351920019xin/p/17852499.html

相关文章

  • 2023-2024-1 20232421邓锴 《网络空间安全导论》 第2周学习总结
    教材学习总结了解密码的来源与发展ENIGMA机的构造以及机理信息论的基本观点了解现代密码学发展以及面临的挑战密码学理论基础(数学知识)密码学的新进展以及未来方向思维导图教材学习中的问题和解决问题问题1:ENIGMA机的构造以及机理了解不清问题1解决办法:查询图片→查找......
  • 虚拟机linux系统配置安装redis(每日总结11.23)
    1.进入到root模式下cd/export/server/2.下载wgethttp://download.redis.io/releases/redis-5.0.7.tar.gz3.解压tar-zvxfredis-5.0.7.tar.gz4.把文件移动到redis文件夹里mvredis-5.0.7/export/server/redis5.进入redis文件夹里cdredis6.编译m......
  • 2023-2024-1 20231329《计算机基础与程序设计》第9周学习总结
    作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK09这个作业的目标计算机科学概论第10,11章并完成云班课测试《C语言程序设计》第8章并完成云班课测试......
  • 每日总结20231123
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周四,上午上了软件设计和软件需求分析,软件设计写的是中介者模式和备忘录模式,软件需求分析是验收的第一阶段,效果还不错。。2、今天下午的人机交互技术还差c/s的结构和flash动画没写,下周一需要验收,该加班了。3、......
  • 2023-2024 20231313《计算机基础与程序设计》第九周学习总结
    2023-202420231313《计算机基础与程序设计》第九周学习总结作业速达作业课程班级链接作业要求计算机基础与程序设计第九周学习总结作业内容计算机科学概论第10,11章《C语言程序设计》第8章并完成云班课测试,操作系统责任、内存与进程管理、分时系统、CPU调度、......
  • 学期(2023-2024-1) 学号(20231414) 《计算机基础与程序设计》第九周学习总结
    学期(2023-2024-1)学号(20231414)《计算机基础与程序设计》第九周学习总结作业信息这个作业属于哪个课程<班级的链接>(2023-2024-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2023-2024-1计算机基础与程序设计第九周作业)这个作业的目标<写上具体方面......
  • java常用时间日期类总结
    前置知识:UTC时间(CoordinatedUniversalTime):协调世界时,主要的世界时间标准,0时区的时间UTC+8:东八区时间Epoch(纪元):1970-01-0100:00:00UTC(北京时间1970-01-0100:08:00UTC+8) 常用类描述 System.currentTimeMillis()返回Epoch至今的毫秒数 java.ut......
  • 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.23)
    一、百度网盘SVIP超级会员共享账号可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答。我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免了U盘的物理载体,直接在网上就实现文件传输。百度网盘SVIP会员可以让自己百度账......
  • 学生生涯&秋招总结
    Codeforces突然意识到好像接下来的流程也用不到codeforces了,好像就要和学生生涯saygoodbye了。点开当初PKU暑校的OJ,发现还有人在提交,哈哈哈,没想到疫情前的题目还有人在做。让我想起来了那首歌词,依然还有人在那里游荡。过程未来是光明的,道路是曲折的。我和CS的缘分最早始于......
  • Bat命令总结
    切换到指定目录cd命令可以切换到指定目录,但是默认是C盘下的目录,要切换到d盘下的目录,有2种方法:1,先切换到d盘,再切换到指定目录d:cdD:\abc2,,用/d选项cd/dD:\abc/d:这是cd命令的一个选项,指定改变驱动器和目录。/d表示可以改变当前驱动器,而不仅仅是当前目录。切换都bat文......