ATM使用方法java



我一直在做一个项目,遇到了一个似乎无法解决的错误。我遇到一个错误"em";不能从静态上下文引用非静态变量initBalance"。我研究过这是怎么回事,但我不明白这意味着什么。

这是我的代码:

import java.util.Scanner;
public class ATM {
Scanner kbd = new Scanner(System.in);
int initBalance = 0;
public static void main(String[] args) {
System.out.print("n---------------------ATM----------------n1. Withdrawn2. Depositn3. Transfern4. Check balancen5. EXIT");
System.out.print("nChoose operation: ");
int option = kbd.nextInt();
while (option<5) {
if(option==1)
withdraw();
else
if(option==2)
deposit();
else
if(option==3)
transfer();
else
if(option==4)
balanceCheck();
}
}

public static void withdraw() {

System.out.print("Enter amount to be withdrawn: ");
int withdrawBalance = kbd.nextInt();
if (withdrawBalance > initBalance) {
System.out.print("Collect your money.");
initBalance = initBalance - withdrawBalance;
System.out.print("Chceck balance? 1. Yes 2. No : ");
int balanceOption = kbd.nextInt();
if (balanceOption==1) {
System.out.print("Remaining balance: " + initBalance);
}
}

else {
System.out.print("Insufficient Balance");
}

}

public static void deposit() {
System.out.print("Enter amount you want to deposit: ");
int depositBalance = kbd.nextInt();
initBalance = initBalance + depositBalance;
System.out.print("Chceck balance? 1. Yes 2. No : ");
int balanceOption = kbd.nextInt();
if (balanceOption==1) 
System.out.print("Remaining balance: " + initBalance);
else
if(balanceOption==2)
System.out.print("nThank you for using this ATM!");
else
System.out.print("Number not in the option.");

}

public static void transfer() {
System.out.print("Enter Account number: ");
int accNum = kbd.nextInt();
System.out.print("Enter amount to be transferred: ");
int moneySent = kbd.nextInt();
if(moneySent > initBalance) {
System.out.print("Transfer Success!");
initBalance = initBalance - moneySent;
System.out.print("Chceck balance? 1. Yes 2. No : ");
int balanceOption = kbd.nextInt();
if (balanceOption==1) 
System.out.print("Remaining balance: " + initBalance);
else
if(balanceOption==2)
System.out.print("nThank you for using this ATM!");
else
System.out.print("Number not in the option.");
}
else {
System.out.print("Insufficient Balance");
}

}

public static void balanceCheck() {
System.out.print("Remaining balance: " + initBalance);

}
}

静态方法(在您的情况下:提款、存款、转账、balanceCheck(不能使用非静态变量(在您情况下:initBalance(。为了使用非静态变量,您必须在某个地方创建一个对象(ATM anATM=new ATM(((,并使用不创建对象的静态方法,例如:ATM.withdraw((

最新更新