心得体会之面向对象第二次体验——银行案例简写

学习java已经有三周了,这三周里,我不仅了解了java里的面向过程,并且在和一周对面向对象进行了深化了解,构造方法,方法重载(或者方法重写)面向对象的三大特性(继承,封装,多态)以及初步了解三个修饰符中的abstract。我觉得这很多都离不开千峰培训班讲师和老师的细心解惑。感谢他们。

package com.lz.day12.bank;
//测试类
public class TestBank {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		//插入银行卡,输入密码
		//卡密校验成功展示菜单,失败重新输入
		//显示showmenue菜单
	
		
		//程序的起始
		bank bank1 = new bank();//创建一个新银行
		bank1.initial();//初始化信息
		bank1.welcomeMenu();
		bank1.login();
		

		
	}

}

package com.lz.day12.bank;
//存储相关信息,用户类
public class user {
	//卡号,密码,姓名,身份证号,电话号,存款
	
	private	String cardno;//卡号
	private	String password;//密码
	private	String username;//姓名
	private	String identitycard;//身份证号码
	private	String phone;//手机号
	private	double balance;//存款
	//构造方法,方便调用以及创建用户信息
	public user() {}
	public user(String cardno,String password,String username,String identitycard,String phone,double balance) {
		this.cardno = cardno;
		this.password = password;
		this.username = username;
		this.identitycard = identitycard;
		this.phone = phone;
		this.balance = balance;
	}
	//由于private私有化属性,所以其他类不好调用该类的属性,需要建立相应的方法(get、set)去调用本类属性
	public String getCardno() {
		return cardno;
	}
	public void setCardno(String cardno) {
		this.cardno = cardno;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getIdentitycard() {
		return identitycard;
	}
	public void setIdentitycard(String identitycard) {
		this.identitycard = identitycard;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public double getBalance() {
		return balance;
	}
	public void setBalance(double balance) {
		this.balance = balance;
	}
	
}

package com.lz.day12.bank;
import java.util.Scanner;
//银行类
public class bank {
	Scanner input = new Scanner(System.in);
	//初始化信息,用户信息的初始化
	//创建一个数组
	user[] user1 =new user[100];
	int size=100;
	public void initial() {
		
		user users=new user();
		users.setCardno("123456788");
		users.setPassword("123456");
		users.setUsername("tom");
		users.setIdentitycard("123456789");
		users.setPhone("123456789");
		users.setBalance(20000.0);
		
		user1[0]=users;
		user user2=new user("123456789","123456","annie","123456789","123456987",4000.0);
		user1[1]=user2;
		
		user user3=new user("123456787","123456","sofeiya","123456789","123456987",9000.0);
		user1[2]=user3;
	}
	public	void welcomeMenu() {
		System.out.println("-------------欢迎使用ATM自助银行系统----------");
		System.out.println("1.开户2.登录");
		
		int choice = input.nextInt();
		
		switch (choice) {
		case 1:
			System.out.println("执行开户");
			this.openAccount();
			break;
		case 2:
			this.login();
			
			break;
		}
		
	}
	//开户功能
	public void openAccount() {
		user[] newUsers = new user[user1.length + 1];
		int size = user1.length+1;
		System.out.println(size);
		System.arraycopy(user1, 0, newUsers, 0, user1.length);
		newUsers[user1.length] = new user();
		System.out.println("请输入密码:");
		newUsers[user1.length].setPassword(input.next());
		System.out.println("请输入姓名:");
		newUsers[user1.length].setUsername(input.next());
		System.out.println("请输入身份证号:");
		newUsers[user1.length].setIdentitycard(input.next());
		System.out.println("请输入电话:");
		newUsers[user1.length].setPhone(input.next());
		java.util.Random random = new java.util.Random();
		int  a = random.nextInt(1000);
		if(a < 100) {
			a = a + 100;
	    }
		System.out.println(a);
		String b = "123456";
		newUsers[user1.length].setCardno(b + a);
		System.out.println("您的卡号为:" + newUsers[user1.length].getCardno());
		user1 = newUsers;
	    this.login();
		
		
		
	}
	
	//用户登录页面
 	public void login() {
		//用户输入卡号,密码
		System.out.println("请输入卡号");
		String no=input.next();
		System.out.println("请输入密码");
		String pwd = input.next();
		
		user  myAccount = this.check(no, pwd);//验证成功
		
		if(myAccount!=null){
			this.showMenu(myAccount);
		}else {
			System.out.println("登录失败");
		}
		
	
		
		
		
	}
	
	//验证用户名和密码是否正确
	public  user  check(String no,String pwd) {
		for(int i=0;i<user1.length;i++) {
			if(user1[i]!=null) {
				if(no.equals(user1[i].getCardno()) && pwd.equals(user1[i].getPassword()))  {
					//记录登录成功的用户
					System.out.println("登录成功,欢迎你"+user1[i].getUsername());
					return user1[i];
				}
			}
		}
		return null;
		
		
			
	}
	//取款业务
	public void withdrawal(user myAccount) {
		System.out.println("取款功能操作中");
		System.out.println("请输入取款金额");
		
		double money =input.nextDouble();
		if(money>0&&money<myAccount.getBalance()) {
			//正常取款
			double currentBalance=myAccount.getBalance()-money;
			myAccount.setBalance(currentBalance);
			System.out.println("取款成功"+myAccount.getBalance());
		}else {
			System.out.println("余额不足");
		}
	}
	//存款功能.
	public void deposit(user myAccount) {
		System.out.println("存款功能操作中");
		System.out.println("请输入存款金额");
		
		double money =input.nextDouble();
		if(money>0) {
			//正常存款
			double currentBalance=myAccount.getBalance()+money;
			myAccount.setBalance(currentBalance);
			System.out.println("存款成功"+myAccount.getBalance());
		}
	}
	//转账功能
	public void transfer(user myAccount) {
		
	}
	//显示存款功能
	public void showAll(user myAccount) {
		
			System.out.println("你的账户余额为:"+ myAccount.getBalance());
		
	}
	//显示账户信息
	public void show1(user myAccount) {
		
			System.out.println(myAccount.getCardno()+"\n"+myAccount.getBalance()+"\n"+myAccount.getUsername());
		
	}
	//修改手机号码
	public void phone(user myAccount) {
		System.out.println("请输入原手机号");
		String oldphone=input.next();
		//利用equals来比较
		if(oldphone.equals(myAccount.getPhone())) {
			System.out.println("请输入行密码");
			String newphone =input.next();
			myAccount.setPhone(newphone);
		}
	}
	
	//展示银行业务的菜单
	public void showMenu(user myAccount) {
		
		int choice;
		while(true) {
			System.out.println("-------------欢迎使用ATM自助银行系统----------");
			
			System.out.println("1.卡户2.存款 3.取款 4. 转账 5.查询余额6修改密码7修改预留手机号码8注销账号0退出");
			System.out.println("---------------------------------------");
			System.out.println("请输入菜单编号");
			 choice = input.nextInt();
			
			switch(choice) {
			case 1:
				System.out.println("执行查看账户");
				this.show1(myAccount);
				break;
			case 2:
				System.out.println("执行存款");
				this.deposit(myAccount);
				break;
			case 3:
				System.out.println("执行取款");
				this.withdrawal(myAccount);
				break;
				
			case 4:
				System.out.println("执行转账");
				this.transfer(myAccount);
				break;
				
			case 5:
				System.out.println("执行查询余额");
				this.showAll(myAccount);
				break;
				
			case 6:
				System.out.println("修改密码");
				break;
			case 7:
				System.out.println("修改预留手机号码");
				this.phone(myAccount);
				break;
			case 8:
				System.out.println("注销账号");
				break;	
			case 0:
				System.out.println("执行退出");
				
				return;//退出整个方法
			default:
				System.out.println("输入有误,请重新输入");
			}
			
		} 
	}
}

在这里插入图片描述
总的来说这一周比之前的两周更具有挑战性,出现的问题也多于前两周,不过所幸有同班同学一起交流,才少了很多弯路。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值