You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,避免资源浪费
    }
}

关键修改点说明:

  1. 创建Bank实例:在main方法里初始化Bank myBank = new Bank();,这样我们才能调用它的add方法来存钱
  2. 实现转账逻辑:在/deposit分支里,调用myBank.add(coinsamount)把钱包里的所有硬币转到银行,然后重置钱包余额为0
  3. 添加余额查询:通过getAmount()方法可以查看银行余额,方便验证转账是否成功
  4. 语法修复:去掉了原/deposit输出语句里的多余+ +,现在能正确显示转账金额

额外建议:

  • Java类名要遵循大驼峰命名法,比如bank改成Bank,shop改成Shop,这是行业规范
  • 如果以后需要扩展功能(比如从银行取钱),可以给Bank类加一个withdraw方法
  • 可以把重复的逻辑(比如存款、挖矿)抽成单独的方法,让代码更整洁

内容的提问来源于stack exchange,提问作者Sdev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 20:49:08