本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

简单实现Account账号类及ATM测试类(存款、取款、查询余额、转账)

发布于2020-11-19 20:49     阅读(1430)     评论(0)     点赞(30)     收藏(2)


账户类account,
拥有公开属性账号username、密码password、手机号phone、余额blance
拥有方法 存款 取款 查询余额 转账,及相应构造方法



public class Account {
	//这里就不用get,set方法,属性直接用public修饰,main方法直接调用
	public String username;//账号
	public String password;//密码
	public int phone; //手机
	public double blance;//余额
	
	//无参构造方法
	public Account() {
	}
	//有参构造方法
	public Account(String username, String password, int phone) {
		this.username = username;  //this.usename指的是全局中的username
		this.password = password;
		this.phone = phone;	
	}
	

	
	//存钱方法
	public void deposit(double money){
		//每次存钱,卡里的余额就会变成本次存的钱+卡里本来的余额
		blance = blance + money;
	}
	//取钱的方法  返回布尔类型,取钱时会先判断账户是否有钱,返回false、 或者true
	public boolean withdraw(double money){
		if(money>blance){
			return false;
		}
		//若账户余额大于要取出的钱,则剩下的余额变成下列表达式
		blance=blance-money;
		return true;
	}
	//查询余额
	public double getBalance(){
		return blance;
	}
	//转账方法    (参数列表 转入的账号,和转入的金额) 
	public boolean transfer(Account account,double money){
		boolean withdraw = withdraw(money);
		if(withdraw){
			account.deposit(money);
		}
		
		return withdraw;
		
	}
}

简单实现 ATM自动取款测试类


import java.util.Scanner;

public class AtmTest {
	public static void main(String[] args) {
		// 创建两个测试对象账号
		Account a = new Account("admin", "admin", 10086);
		Account b = new Account("wangwu", "wangwu", 10010);
		welcome();
		while (true) { // 这里要套个循环,因为要重复操作
			// 首先输入账号密码
			System.out.println("请输入账号:");
			// 调用下面的String类型方法
			String username = scString();
			System.out.println("请输入密码:");
			// 调用下面的String类型方法
			String password = scString();
			// 然后判断a、b账号密码是否正确,或存在
			if (username.equals(a.username) && password.equals(a.password)
					|| username.equals(b.username) && password.equals(b.password)){// 如果账号密码正确,则开始进行账户操作
				
			// 登录成功获取登录账号对象
			Account loginAccount = a;
			
			while (true) {
				System.out.println("请输入选择:0取款,1存款,2查询,3转账,4退出");
				// 调用下面的int类型方法
				int choose = scInt();
				if (choose == 0) { // 取款操作
					System.out.println("请输入取款金额:");
					Double money = scDouble();
					// 调用登录账号取款方法   调用Account账户类取款方法
					boolean withdraw = loginAccount.withdraw(money);
					if(withdraw){
						System.out.println("取款成功");
					}else{
						System.out.println("取款失败,账户余额不足");
					}
				}else if(choose==1){  //存款操作
					System.out.println("请输入存款金额:");
					Double money = scDouble();
					//调用调用登录账号存款方法
					loginAccount.deposit(money);//因为Account类中方法是无返回值的,所以这里无返回值类型
					System.out.println("存款成功!");
				}else if(choose==2){ //查询操作
					//直接调用查询方法  然后打印在控制台
					double balance = loginAccount.getBalance();
					System.out.println("余额:" + balance);
				}else if(choose==3){ //转账操作
					System.out.println("请输入转入账户的账户");
					//1.首先获取转入账号 直接调用String类型方法
					String intoUserName = scString();
					//2.然后判断一下账户是否存在
					
					if(intoUserName.equals(b.username)){
						//3.存在,则先声明个账户保存b账户信息
						Account intoAccount =b;
						//4.获取转入金额    控制台输入转账金额,double类型
						System.out.println("请输入转账金额:");
						int money1 = scInt();
						//5.调用转账方法  注意用的是a账户进行转账操作
						loginAccount.transfer(intoAccount, money1);
						System.out.println("转账成功!");
					}else{
						System.out.println("账号不存在");
					}
					
				}else if (choose ==4){
					System.out.println("账号已退出");
					break;
				}
			}
			}else{
				System.out.println("输入账号或密码有误,登陆失败!");
			}
		}
	}

	// 欢迎方法
	public static void welcome() {
		System.out.println("欢迎来到Tim银行");
	}

	// 控制台输入方法String类型
	public static String scString() {
		Scanner sc = new Scanner(System.in);
		return sc.nextLine();
	}

	 //控制台输入方法int类型
	public static int scInt() {
		Scanner sc = new Scanner(System.in);
		return sc.nextInt();
	}

	// 控制台输入方法double类型
	public static double scDouble() {
		Scanner sc = new Scanner(System.in);
		return sc.nextDouble();
	}
}

注:对于初学者来说的一个简单的程序,欢迎大家评价。

原文链接:https://blog.csdn.net/weixin_51633983/article/details/109756569



所属网站分类: 技术文章 > 博客

作者:java大师

链接:http://www.javaheidong.com/blog/article/884/7598bcc9951433c20203/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)