欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-12 20:06:26
...

账户类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();
	}
}

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

相关标签: 趣味代码 java