Java 如何从不同类更改main方法中的值

Java 如何从不同类更改main方法中的值,java,methods,Java,Methods,我正在创建一个程序,它有一个ATM类,其中有一个cheqings和储蓄帐户,可以根据用户在起始类的main方法中输入的内容进行更改。由于某种原因,当用户输入从其帐户存款/取款的金额时,会进行计算,但不会存储该值。因此,当我去显示帐户余额时,两个帐户都处于其起始值 public class ATM { private double cheqBal; private double savingsBal; private String bankName; public ATM(double che

我正在创建一个程序,它有一个ATM类,其中有一个cheqings和储蓄帐户,可以根据用户在起始类的main方法中输入的内容进行更改。由于某种原因,当用户输入从其帐户存款/取款的金额时,会进行计算,但不会存储该值。因此,当我去显示帐户余额时,两个帐户都处于其起始值

public class ATM {

private double cheqBal;
private double savingsBal;
private String bankName;

public ATM(double cheq, double savings, String name) {
    cheqBal = cheq;
    savingsBal = savings;
    bankName = name;
}

public double getCheq() {
    return cheqBal;
}
public double getSavings() {
    return savingsBal;
}
public String getName() {
    return bankName;
}

public void setCheq(double cheq) {
    cheqBal = cheq;
}
public void setSavings(double savings) {
    savingsBal = savings;
}
public void setName(String name) {
    bankName = name;
}

public double depositCheq(double cheq) {
    if (cheq < 0) {
        System.out.println("Sorry you cannot do that!");
    } else {
        cheqBal += cheq;
    }
    System.out.println(getCheq());
    return cheqBal;
}
这是主要的方法。当我按1存款时,它不会重复我按5存款时显示余额的金额。(所有的主方法都在一个循环中,因此它一直持续到退出)


抱歉,代码太多了,希望你们能理解我的问题,并能提供帮助

每次运行循环时,您都在构造一个新的
ATM
对象,并将起始值传递给构造函数,因此显示此新对象的值,而旧对象将被销毁。

每次运行循环时,您都在构造一个新的
ATM
对象,通过将起始值传递给构造函数,您可以显示此新对象的值,而旧对象将被销毁。

您不能从另一个类更改main方法中的值。Java是按值传递的,而不是按引用传递的。您只能更改成员变量,即可以访问相同变量的内容。您必须返回要更改的值并在主方法中进行设置。可能的重复项不能从其他类更改主方法中的值。Java是按值传递的,而不是按引用传递的。您只能更改成员变量,即您可以访问相同变量的内容。您必须返回要更改的值,并在主方法中进行设置。可能重复
double savBal = 500;
        double cheqBal = 1000;

        ATM bank1 = new ATM(cheqBal, savBal, "BMO");

        String userChoice = JOptionPane.showInputDialog("1: Deposit Cheqings \n2: Deposit Savings \n"
                + "3: Withdraw Cheqings \n4: Withdraw Savings \n5: Show Balance\n6: Exit");
        int choice = Integer.parseInt(userChoice);

        if (choice == 1) {
            String cheqIn = JOptionPane.showInputDialog("How much would you like to deposit?: ");
            bank1.depositCheq(Double.parseDouble(cheqIn));
            cheqBal = bank1.getCheq();
        } else if (choice == 2) {
            String savIn = JOptionPane.showInputDialog("How much would you like to deposit?: ");
            bank1.depositSavings(Double.parseDouble(savIn));
            savBal = bank1.getSavings();
        } else if (choice == 3) {
            String cheqOut = JOptionPane.showInputDialog("How much would you like to withdraw?: ");
            bank1.withdrawCheq(Double.parseDouble(cheqOut));
            cheqBal = bank1.getCheq();
        } else if(choice == 4){
            String savOut = JOptionPane.showInputDialog("How much would you like to withdraw?: ");
            bank1.withdrawSavings(Double.parseDouble(savOut));
            savBal = bank1.getSavings();
        }else if(choice == 5){
            bank1.toString();
        }else if(choice == 6){
            break;