首页 > 其他分享 >每日博客

每日博客

时间:2023-11-28 21:24:29浏览次数:22  
标签:account 每日 System 博客 void println public out

实验 21:观察者模式

package observer_pattern;

 

public interface Guancha {

    public void sheng();

    public void jiang();

}

package observer_pattern;

 

public class Gumin implements Guancha{

    private String name;

    public Gumin(String a){name=a;}

    public void sheng(){

        System.out.println(name+"买了一些股票(股票升了)");

    }

    public void jiang(){

        System.out.println("股票降价了,哭了");

    }

}

package observer_pattern;

 

import java.util.ArrayList;

public class Fen{

    private ArrayList<Guancha> oblist;

    public Fen(){

        oblist=new ArrayList<>();

    }

    public void add(Guancha a){

        oblist.add(a);

    }

    public void remove(Guancha a){

        oblist.remove(a);

    }

    public void sheng(double a){

        if(a>0.05)

            for(Guancha guan:oblist){

                    guan.sheng();

            }

    }

    public void jiang(double a){

        if(a>0.05)

            for(Guancha guan:oblist){

                    guan.jiang();

            }

    }

}

package observer_pattern;

public class main {

    public static void main(String[] args) {

        Fen f=new Fen();

        Gumin g1=new Gumin("第一个股民");

        Gumin g2=new Gumin("第二个股民");

        f.add(g1);

        f.add(g2);

        System.out.println("股票升了");

        f.sheng(0.1);

        System.out.println("比率小于0.05");

        System.out.println();

        f.sheng(0.001);

       

        System.out.println("股票降了");

        f.jiang(0.1);

        System.out.println("比率小于0.05");

        System.out.println();

        f.jiang(0.001);

    }

}

实验 22:状态模式

 

package rjsj.no22;

 

public class GreenState extends AccountState{

 

    public GreenState(double balance,Account acc) {

        this.balance = balance;

        this.account = acc;

        this.stateName = "正常状态";

    }

}

package rjsj.no22;

 

public class RedState extends AccountState{

 

    public RedState(AccountState state) {

        this.balance = state.balance;

        this.account = state.account;

        this.stateName="透支状态";

    }

 

    public void withdraw(double amount) {

        System.out.println(account.getOwner()+"取款"+amount);

        System.out.println("抱歉,您的账户已处于透支状态,不能取款!");

    }

}

package rjsj.no22;

 

public class YellowState extends AccountState{

 

    public YellowState(AccountState state) {

        this.balance = state.balance;

        this.account = state.account;

        this.stateName="欠费状态";

    }

}

package rjsj.no22;

 

public class Account {

    private AccountState state;

    private String owner;

 

    public AccountState getState() {

        return state;

    }

 

    public void setState(AccountState state) {

        this.state = state;

    }

 

    public String getOwner() {

        return owner;

    }

 

    public void deposit(double amount) {

        state.deposit(amount);

    }

 

    public void withdraw(double amount) {

        state.withdraw(amount);

    }

 

    public Account(String owner, double initBalance) {

        this.owner = owner;

        this.state = new GreenState(initBalance,this);

        System.out.println(this.owner + "开户成功!银行卡初始金额:" + initBalance);

        System.out.println("----------------------------------------------------");

    }

}

package rjsj.no22;

 

public abstract class AccountState {

    protected Account account;//账户名

    protected double balance;//账户金额

    protected String stateName;//当前状态

 

    public void deposit(double amount) {

        System.out.println(account.getOwner() + "存款" + amount);

        this.balance = this.balance + amount;

        stateCheck();

        System.out.println("账户余额:" + this.balance);

        System.out.println("账户状态:" + account.getState().stateName);

    }

 

    public void withdraw(double amount) {

        System.out.println(account.getOwner() + "取款" + amount);

        this.balance = this.balance - amount;

        stateCheck();

        System.out.println("账户余额:" + this.balance);

        System.out.println("账户状态:" + account.getState().stateName);

    }

 

    public void stateCheck(){//状态审查

        if( balance >= -1000 && balance < 0 ) {

            account.setState(new YellowState(this));

        }else if( balance < -1000 ) {

            account.setState(new RedState(this));

        }else if ( balance > 0 ){

            account.setState(new GreenState(this.balance,this.account));

        }

    }

}

package rjsj.no22;

 

public class Client {

 

    public static void main(String[] args) {

        Account account = new Account("李华",100);

        account.deposit(8888);

        System.out.println("------------------------------");

        account.withdraw(666);

        System.out.println("------------------------------");

        account.deposit(50);

        System.out.println("------------------------------");

        account.withdraw(9000);

        System.out.println("------------------------------");

        account.withdraw(50000);

        System.out.println("------------------------------");

        account.deposit(3000);

        System.out.println("------------------------------");

        account.withdraw(100);

    }

}

 

实验 23:策略模式

 

package rjsj.no23;

 

 

 

public class BicycleStrategy implements TravelStrategy{

 

    @Override

 

    public void travel() {

 

        System.out.println("骑自行车旅游");

 

    }

 

}

 

package rjsj.no23;

 

 

 

public class Client {

 

    public static void main(String[] args) {

 

        Traveler traveler = new Traveler();

 

 

 

        System.out.println("旅游开始!");

 

        TravelStrategy travelStrategy = new TrainStrategy();

 

        traveler.setTravelStrategy(travelStrategy);

 

        traveler.travel();

 

        System.out.println("**************************************************");

 

        System.out.println("旅游开始!");

 

        travelStrategy = new AirplaneStrategy();

 

        traveler.setTravelStrategy(travelStrategy);

 

        traveler.travel();

 

        System.out.println("**************************************************");

 

        System.out.println("旅游开始!");

 

        travelStrategy = new BicycleStrategy();

 

        traveler.setTravelStrategy(travelStrategy);

 

        traveler.travel();

 

        System.out.println("**************************************************");

 

    }

 

}

 

package rjsj.no23;

 

 

 

public class TrainStrategy implements TravelStrategy{

 

    @Override

 

    public void travel() {

 

        System.out.println("坐火车旅游");

 

    }

 

}

 

package rjsj.no23;

 

 

 

public class Traveler {

 

    private TravelStrategy travelStrategy;

 

 

 

    public void setTravelStrategy(TravelStrategy travelStrategy) {

 

        this.travelStrategy = travelStrategy;

 

    }

 

 

 

    public void travel(){

 

        travelStrategy.travel();

 

    }

 

}

 

package rjsj.no23;

 

 

 

public interface TravelStrategy {

 

    void travel();

 

}

 

package rjsj.no23;

 

 

 

public class AirplaneStrategy implements TravelStrategy{

 

    @Override

 

    public void travel() {

 

        System.out.println("乘坐飞机旅游");

 

    }

 

}

 

 

标签:account,每日,System,博客,void,println,public,out
From: https://www.cnblogs.com/LiuLyuancn/p/17863093.html

相关文章

  • 每日总结(37)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午进行了软件需求分析课上的有关于大数据竞赛的题目的考试,也很顺利的写完了。2、今天下午洗了洗衣服,刷会抖音,睡了一觉,好好休息了一下午。3、今天晚上打算继续完成人机交互的作业。......
  • 每日总结(36)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午进行了软件需求分析课上的有关于大数据竞赛的题目的考试,也很顺利的写完了。2、今天下午洗了洗衣服,刷会抖音,睡了一觉,好好休息了一下午。3、今天晚上打算继续完成人机交互的作业。......
  • 每日总结(39)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午进行了软件需求分析课上的有关于大数据竞赛的题目的考试,也很顺利的写完了。2、今天下午洗了洗衣服,刷会抖音,睡了一觉,好好休息了一下午。3、今天晚上打算继续完成人机交互的作业。......
  • 每日总结(40)
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天是周五,今天上午进行了软件需求分析课上的有关于大数据竞赛的题目的考试,也很顺利的写完了。2、今天下午洗了洗衣服,刷会抖音,睡了一觉,好好休息了一下午。3、今天晚上打算继续完成人机交互的作业。......
  • 11.28每日总结
    今天首先完成了大型数据库的第四次实验,这一次实验是比较系统的对比了mysql,hbase,redis和mongoDB这几个数据库,其中包括关系型也包括非关系型。然后进一步完善了人机交互的实验和,大作业,并将其打包成册。最后作为企业文化课的组长,给我的组员安排了我们大作的分工。......
  • 11月28每日打卡
    实验4NoSQL和关系数据库的操作比较 1.实验目的(1)理解四种数据库(MySQL、HBase、Redis和MongoDB)的概念以及不同点;(2)熟练使用四种数据库操作常用的Shell命令;(3)熟悉四种数据库操作常用的JavaAPI。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3;(3)My......
  • 测试博客园VSCode插件 —— 欧陆战争4
    测试vscode插件上传随笔所有内容都是来自贴吧“欧陆战争4吧”此处为做笔记自用欧陆战争4吧兵种分类英系:大不列颠、瑞士。西系:西班牙、葡萄牙、丹麦。普系:普鲁士、梅克伦堡、奥尔登堡、拿骚、巴伐利亚、布伦瑞克、黑森、符腾堡、巴登、莱茵同盟。(注意萨克森并不是普系兵......
  • Linux第八次博客
     这次博客主要还是讲存储管理,将前面没有讲清楚的地方和后面没讲的一起讲完了。 补充内容告诉了我们硬盘机和一些其他的dev表达式,如:IDE硬盘机为/dev/hd[a-d],SCSI/SATA/U盘硬盘机为/dev/sd[a-p],控制台为/dev/console,内存/dev/random。 随后就讲到创建系统文件,在终端输入mkf......
  • 博客园美化
    侧边栏<scripttype="text/javascript">window.cnblogsConfig={//基础信息配置GhVersions:'v1.3.3',//版本blogUser:"BadBadBad__",//用户名blogAvatar:"https://z1.ax1x.......
  • 每日随笔——命令模式
    [实验任务一]:多次撤销和重复的命令模式某系统需要提供一个命令集合(注:可以使用链表,栈等集合对象实现),用于存储一系列命令对象,并通过该命令集合实现多次undo()和redo()操作,可以使用加法运算来模拟实现。实验要求:1.提交类图;2.提交源代码;3.注意编程规范。 AddCommandpack......