调用销户方法后提示销户成功,但是还能查询到账户信息
import java.util.Scanner;
class Bank{
String name;
int id;
int money;
int key;
public Bank(String name,int id,int money,int key){
this.name=name;
this.id=id;
this.money=money;
this.key=key;
}
}
class BankDemo{
//存钱
public static void inPut(Bank n){
Scanner sc=new Scanner(System.in);
if(n==null){
System.out.println("账户为空请添加");
}else{
while(true){
System.out.println("请输入您要存入的钱数(最少1元最多10000)");
int i=sc.nextInt();
if(i<1){
System.out.println("您存入的金额过小,请重新加入");
}else if(i>10000){
System.out.println("您存入的金额过多,默认已为您存入10000元,多余钱款已退回请您收好");
n.money=10000;
break;
}else{
n.money=i;
break;
}
}
}
}
//取钱
public static void get(Bank n){
Scanner sc=new Scanner(System.in);
if(n==null){
System.out.println("账户为空请添加");
}else{
cd:while(true){
System.out.println("请输入您要取出的金额(1~5000)");
int i=sc.nextInt();
if(i>n.money){
System.out.println("您输入的金额大于账户余额请重新输入");
}else if(i<1){
System.out.println("您输入的金额过小请重新输入");
}else if(i>5000){
System.out.println("您输入的金额大于5000,系统已默认取出5000请您收好");
n.money-=5000;
break cd;
}else{
n.money-=i;
break cd;
}
}
}
}
//显示余额
public static void show(Bank n){
if(n==null){
System.out.println("账户为空请添加");
}else{
System.out.println("您的账户余额为:"+n.money+"元");
}
}
//显示账户信息
public static void man(Bank n){
if(n==null){
System.out.println("账户为空请添加");
}else{
System.out.println("姓名:"+n.name+",账号:"+n.id+",余额:"+n.money);
}
}
//修改密码
public static void changeKey(Bank n){
Scanner sc=new Scanner(System.in);
if(n==null){
System.out.println("账户为空请添加");
}else{
while(true){
System.out.println("请输入6位新密码");
int j=sc.nextInt();
if(j/100000>=10){
System.out.println("您书的位数过多,请重新输入");
}else if(j==n.key){
System.out.println("您输入的密码与原密码相同请重新输入");
}else{
System.out.println("请再次录入密码");
int i=sc.nextInt();
if(i==j){
n.key=j;
break;
}else{
System.out.println("您输入的密码与上次密码不一致,更换密码失败");
break;
}
}
}
}
}
//销户
public static void delete(Bank n){
if(n.money==0){
n=null;
System.out.println("账户已注销");
}else{
System.out.println("您的账户余额不为0,无法销户");
}
}
//创建账户
public static void add(Bank n){
Scanner sc=new Scanner(System.in);
if(n==null){
System.out.println("请输入姓名:");
n.name=sc.next();
System.out.println("请输入账号:");
n.id=sc.nextInt();
System.out.println("请输入密码:");
n.key=sc.nextInt();
System.out.println("姓名:"+n.name+",账号:"+n.id+",余额:"+n.money);
}else{
System.out.println("账户不为空无法添加");
}
}
public static void main(String []args){
//Bank b=null;
Bank b=new Bank("卡卡",10001,0,123456);
Scanner sc=new Scanner(System.in);
System.out.println("欢迎使用奇葩银行坑人ATM机");
int n=0;
System.out.println("请输入密码:");
int j=sc.nextInt();
while(n<=1){
if(j==b.key){
break;
}else{
System.out.println("您的输入有误请重新输入");
j=sc.nextInt();
}
n++;
}
if(n==2){
System.out.println("你输入密码次数过多,账户已冻结");
System.exit(0);
}
while(true){
System.out.println("-----------------------");
System.out.println("1,存钱");
System.out.println("2,取钱");
System.out.println("3,查询余额");
System.out.println("4,查询账号信息");
System.out.println("5,修改密码");
System.out.println("6,注销账号");
System.out.println("7,创建账户");
System.out.println("8,退出");
System.out.println("请您要进行操作的编号:");
int k=sc.nextInt();
System.out.println("-----------------------");
switch(k){
case 1:
inPut(b);
break;
case 2:
get(b);
break;
case 3:
show(b);
break;
case 4:
man(b);
break;
case 5:
changeKey(b);
break;
case 6:
delete(b);
break;
case 7:
add(b);
break;
case 8:
System.out.println("欢迎您下次使用");
return;
default:
System.out.println("您的输入有误,请重新输入!");
break;
}
}
}
}19
收起
正在回答
1回答
//销户
public static void delete(Bank n){
if(n.money==0){
n=null;
System.out.println("账户已注销");
}else{
System.out.println("您的账户余额不为0,无法销户");
}
}即使你把传过来的Bank 置为null。也是改变不了外面的Bank b为空的。它只能改变属性值。一般的像你写的例子,会把Bank 放在一个集合中,注销时可以从集合中移除某Bank 对象。集合相关知识会在后续课程中学到。祝:学习愉快
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星