为什么我的程序没有运行并抛出一个;“线程中的异常”;“主要”;java.lang.NullPointerException“;

为什么我的程序没有运行并抛出一个;“线程中的异常”;“主要”;java.lang.NullPointerException“;,java,java.util.scanner,user-input,Java,Java.util.scanner,User Input,现在,在按照建议编辑我的程序后,我在运行程序时没有收到任何显示消息。正在编译AccountBalance.java并生成AccountBalance.class文件,但当程序运行时,它什么也不显示,只有光标在闪烁 类平衡{ 私人扫描银行; 公共int用户帐户; 公共国际银行帐号; 无效帐户() {bank=新扫描仪(System.in); int openingAmount=bank.nextInt(); 系统输出打印(“开立银行账户请存入1000.00卢比以上:“+openingAmount

现在,在按照建议编辑我的程序后,我在运行程序时没有收到任何显示消息。正在编译AccountBalance.java并生成AccountBalance.class文件,但当程序运行时,它什么也不显示,只有光标在闪烁

类平衡{
私人扫描银行;
公共int用户帐户;
公共国际银行帐号;
无效帐户()
{bank=新扫描仪(System.in);
int openingAmount=bank.nextInt();
系统输出打印(“开立银行账户请存入1000.00卢比以上:“+openingAmount”);
如果(打开装载>1000){
System.out.println(“您的银行账户已成功开户”);
userAccount=openingAmount;
System.out.println(“输入您的银行账号:”);
银行=新扫描仪(系统英寸);
bankAccountNumber=bank.nextInt();
}else{System.out.println(“银行账户未开立。\n那么您想开立银行账户吗..!!”);
this.account();//再次请求开户
}
}
无效撤回(){
银行=新扫描仪(系统英寸);
int w=bank.nextInt();
intb=用户帐户-w;
系统输出打印项次(“提取金额为:+w);
如果(w<100)
{
System.out.println(“无法处理您的请求”);
}否则{
System.out.println(“您的余额为:“+b”);
}
}
无效存款(){
银行=新扫描仪(系统英寸);
int d=bank.nextInt();
System.out.println(“存款金额为:”);
用户帐户+=d;
System.out.println(“您的余额为:“+userAccount”);
}
}
公共类帐户余额{
公共静态void main(字符串[]args){
平衡s=新平衡();
s、 账户();
s、 撤回();
s、 存款();
System.out.println(“经常账户余额为:“+s.userAccount”);
}

}
尝试添加
bank=新扫描仪(System.in)balance=bank.nextInt()之前的代码>
account
方法的开头,因为它没有初始化,所以它正在创建
NullPointerException

为类余额编写一个构造函数,并在其中初始化扫描程序

    private Scanner bank;
扫描仪已定义但未初始化。 将此构造函数添加到Balance类

public Balance()
{
    bank = new Scanner(System.in);
}

哪一行导致了错误?我猜您尚未初始化扫描仪