2
開始クラスのメインメソッドでユーザーが入力した内容に基づいて変更できるcheqingsおよびsavingsアカウントがあるATMクラスを持つプログラムを作成しています。何らかの理由により、ユーザーが口座に入金/出金する金額を入力すると数学は行われますが、値は保管されません。そのために、私は口座残高を表示するために行くと、両方の口座は、彼らの出発価値にあります。メインメソッドの値を別のクラスから変更する方法
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;
}
お金の入金/引き出し方法があるATMクラスがあります。私は預金のchequing方法を示した。
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;
主な方法があります。私がお金を預金するために1を押すと、私がバランスを見せるために5を押したときに入金した金額が繰り返されます。 (すべてのメインメソッドがループしているので、終了するまで続きます)。
ご迷惑をおかけして申し訳ありませんが、私の問題を理解して助けてくれることを願っております!
メインメソッドの値を別のクラスから変更することはできません。 Javaは参照渡しではなく、渡し渡しです。メンバー変数、つまり同じ変数にアクセスできるものだけを変更できます。 –
メインメソッドで変更したい値を返す必要があります。 –
[Javaが「参照渡し」または「渡し渡し」の可能性がありますか?](http://stackoverflow.com/questions/40480/is-java-pass-by-reference-orpass -by-value) –