Java跨类变量调用及存钱系统转存功能实现问题
看起来你已经搭好了基础框架,现在就差把钱包里的硬币转到银行账户的关键逻辑啦!我帮你梳理下问题,然后直接上修改后的代码和说明:
首先,你的现有代码有几个小问题需要解决:
/deposit指令里没有实际的转账逻辑,而且输出语句有语法错误(多余的+ +)- Main类里没有创建bank类的实例,没法调用它的
add方法 - 没法验证转账是否成功,因为bank类没有提供查看余额的方法
接下来是具体的修改方案:
第一步:完善Bank类(注意Java类名要大写哦)
给bank类加一个获取余额的方法,这样我们可以随时查看银行账户里的钱:
package coins; public class Bank { // 类名改成大驼峰更规范 private int amount = 0; public void add(int amount) { this.amount += amount; } // 添加这个方法来获取银行余额 public int getAmount() { return amount; } }
第二步:修改Main类,实现转账逻辑
在main方法里创建Bank实例,然后完善/deposit的处理逻辑,还可以加一个指令查看银行余额:
package Main; import coins.Bank; import java.util.Random; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int coinsamount = 0; boolean playing = true; Random coins = new Random(); // 实例化Bank对象,这是连接两个类的关键 Bank myBank = new Bank(); System.out.println("Bot successfully started"); while (playing) { String in = input.next(); if (in.equals("/coins")) System.out.println("You have " + coinsamount + " coins!"); if (in.equals("/mine")) { int minedcoins = coins.nextInt(200) + 1; coinsamount += minedcoins; System.out.println("You've mined " + minedcoins + " coins!"); } if (in.equals("/deposit")) { // 调用Bank的add方法,把当前所有硬币转进去 myBank.add(coinsamount); // 输出转账成功的提示,显示金额 System.out.println("You successfully deposited " + coinsamount + " coins!"); // 转账后清空钱包余额(如果是转全部的话,按需调整) coinsamount = 0; } // 新增/bank指令,查看银行账户余额 if (in.equals("/bank")) { System.out.println("Your bank balance is " + myBank.getAmount() + " coins!"); } if (in.equals("/stop")) { break; } if (in.equals("/shop")) { // 这里要确保Shop类存在且能正确实例化哦 Shop s = new Shop(); } } input.close(); // 记得关闭Scanner,避免资源浪费 } }
关键修改点说明:
- 创建Bank实例:在main方法里初始化
Bank myBank = new Bank();,这样我们才能调用它的add方法来存钱 - 实现转账逻辑:在
/deposit分支里,调用myBank.add(coinsamount)把钱包里的所有硬币转到银行,然后重置钱包余额为0 - 添加余额查询:通过
getAmount()方法可以查看银行余额,方便验证转账是否成功 - 语法修复:去掉了原
/deposit输出语句里的多余+ +,现在能正确显示转账金额
额外建议:
- Java类名要遵循大驼峰命名法,比如
bank改成Bank,shop改成Shop,这是行业规范 - 如果以后需要扩展功能(比如从银行取钱),可以给Bank类加一个
withdraw方法 - 可以把重复的逻辑(比如存款、挖矿)抽成单独的方法,让代码更整洁
内容的提问来源于stack exchange,提问作者Sdev
相关产品推荐
相关产品推荐

