首页 > 其他分享 >状态模式

状态模式

时间:2023-12-15 18:01:33浏览次数:32  
标签:状态 Account double userID 模式 reader public nextDouble

[实验任务一]:银行账户
用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化。

1. 提交源代码

2.	public class Account 
3.	{
4.	    private int userID;//账号
5.	    private int password;//密码
6.	    private double deposit;//存款余额
7.	    private double rate;//利率
8.	    private double balance;//最小余额
9.	    static int aotonomic_number=2021001;
10.	    {
11.	        userID=aotonomic_number;
12.	        System.out.println("账号为:"+userID);
13.	        aotonomic_number++;
14.	    }
15.	

16.	    public double getBalance()
17.	     {
18.	        return balance;
19.	    }
20.	
21.	    public void setBalance(double balance) 
22.	    {
23.	        this.balance = balance;
24.	    }
25.	    public String toString() 
26.	    {
27.	        return "Account [账号" + userID + ", 密码" + password + ", 存款余额"
28.	                + deposit + ", 利率" + rate + ", 最小余额" + balance + "]";
29.	    }
30.	
31.	    public int getUserID()
32.	     {
33.	        return userID;
34.	    }
35.	
36.	    public void setUserID(int userID) 
37.	    {
38.	        this.userID = userID;
39.	    }
40.	
41.	    public int getPassword() 
42.	    {
43.	        return password;
44.	    }
45.	
46.	    public void setPassword(int password) 
47.	    {
48.	        this.password = password;
49.	    }
50.	
51.	    public double getDeposit()
52.	     {
53.	        return deposit;
54.	    }
55.	
56.	    public void setDeposit(double deposit)
57.	     {
58.	        this.deposit = deposit;
59.	    }
60.	
61.	    public double getRate() 
62.	    {
63.	        return rate;
64.	    }
65.	
66.	    public void setRate(double rate)
67.	     {
68.	        this.rate = rate;
69.	    }
70.	}
71.	


import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        Account user1=new Account();
        Account user2=new Account();
        Account user3=new Account();
        Scanner reader = new Scanner(System.in);

        System.out.println("设置密码:");
        user1.setPassword(reader.nextInt());
        user2.setPassword(reader.nextInt());
        user3.setPassword(reader.nextInt());
        System.out.println("输入存款:");
        user1.setDeposit(reader.nextDouble());
        user2.setDeposit(reader.nextDouble());
        user3.setDeposit(reader.nextDouble());
        System.out.println("输入利率:");
        user1.setRate(reader.nextDouble());
        user2.setRate(reader.nextDouble());
        user3.setRate(reader.nextDouble());
        System.out.println("输入最小余额:");
        user1.setBalance(reader.nextDouble());
        user2.setBalance(reader.nextDouble());
        user3.setBalance(reader.nextDouble());
        System.out.println(user1.toString()+'\n'+user2.toString()+'\n'+user3.toString());
    }
}

标签:状态,Account,double,userID,模式,reader,public,nextDouble
From: https://www.cnblogs.com/yzx-sir/p/17903910.html

相关文章

  • 迭代器模式
    迭代器提供了一种统一的方式来访问集合对象中的元素,而不是暴露集合内部的表示方式。简单地说,就是将遍历集合的责任封装到一个单独的对象中,我们可以按照特定的方式访问集合中的元素。迭代器模式有两个角色,一个是迭代器,一个是聚合器,Java或则c#中的Collection,List,Set,Map就是聚合器。......
  • 命令模式
    命令模式,请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。命令模式有三个角色,一个命令,二是命令接收者,三是命令调用者。像http请求,数据库sql命令都是常见的命令模式。命令模式的意图是将一个请求......
  • 模板方法模式
    模板方法模式是指定义一个操作中算法的骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下即可重定义该算法的某些特定步骤。模板方法主要有两个角色,一个抽象类模板,定义好骨架,第二是实现的子类,实现抽象类模板的抽象方法,和根据需要重写一些方法,其实这也是我......
  • 策略模式
    策略模式有两个主要角色,一个是主类,一个是策略类,通过主类的构造函数将策略类注入到主类,从而实现调用不同的策略。典型的例子就是收银策略,正常收费,八折、五折,满200减50等等。示例代码packagedesignMode.strategy;publicclassCashContext{privateCashSupercashSuper;......
  • 状态机图
    (1)创建状态图。在Rose中,可以为每个类创建一个或者多个状态图,类的转换和状态都可以在状态图中体(2)创建初试状态和终止状态。初始状态代表着状态图的起点,终止状态代表着状态图的终点。初始状态在状态图中用实心圆表示,终止状态在状态图中用实心圆的空心圆表示。(3)创建状态。首先用鼠标......
  • 知识|基于混合模式的多余度飞控全数字仿真系统研究
    *余度(Redundancy):一种确保安全的设计手段,使得出现两个及以上故障时,才会引起既定不希望发生的工作状态。飞行控制软件主要完成飞行传感器数据处理、飞行姿态控制和余度管理任务,对保证飞机安全性和可靠性起着关键作用,但是现实中与飞行控制软件相关的研发测试过程依旧举步维艰。其主......
  • python 脚本的启动模式(python -m以模块方式启动)
    今天再看python的项目时,发现GitHub中给出的python脚本的执行格式是python-mpipinstallsomepackage。于是开始了python模式启动之旅。其中很多相关借鉴了该博客,同时感谢博主:http://www.cnblogs.com/xueweihan/p/5118222.html什么是python启动模块:通过python启动一个库中......
  • vue---操作状态
    VUE更改VUEX状态:简单示例代码:importVuefrom'vue';importVuexfrom'vuex';Vue.use(Vuex);exportdefaultnewVuex.Store({state:{count:0},mutations:{increment(state){state.count++;},d......
  • 适配器模式揭秘:让不兼容的组件完美协同
    前言从这篇文章开始来盘一盘结构型设计模式,在开始之前先来简单回顾一下创建型的设计模式有哪些,如果有兴趣,就来一起学习吧:设计模式之简单工厂模式工厂方法模式:改变你对软件开发的认知_凡夫编程的技术博客_51CTO博客抽象工厂模式:角色解析与应用探索_凡夫编程的技术博客_51CTO博客设计......
  • SaaS模式相比传统CRM系统有哪些优势?为什么成为行业主流
     在数字化时代,选择适合企业的客户关系管理系统(CRM)至关重要。传统CRM系统曾是企业的重要选择,但随着基于互联网的SaaS模式的兴起,越来越多的企业开始转向SaaSCRM。本文将对比传统CRM系统和SaaSCRM,并解答一些常见问题。一、传统CRM系统的局限性传统CRM系统通常需要企业购买和维......