有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java错误:无法找到或加载主类bankAccount。银行账户

我是一名Java初学者,试图编译和运行一个简单的程序。它编译成功。但当我尝试运行时抛出错误。谁能指出我犯的错误吗。错误如下

"Error: Could not find or load main class bankAccount.BankAccount"

下面是代码

package bankAccount;

class AccountDetails{
    private String fName;
    private String mName;
    private String lName;
    private String mailId;
    private String dob;
    private char gender;
    private String mStatus;
    private int custID;
    private int accountNo;
    private int minBalance;
    private static int counter=1000;
    private static int counter1=10000;
    private String typeOfAccount;
    public AccountDetails(String fName, String mName, String lName, String mailId, String dob, char gender, String mStatus)
    {
        this.fName=fName;
        this.mName=mName;
        this.lName=lName;
        this.mailId=mailId;
        this.dob=dob;
        this.gender=gender;
        this.mStatus=mStatus;
        custID=++counter;
        accountNo=++counter1;
        if (typeOfAccount.equalsIgnoreCase("salary")){
            minBalance=0;
        }
        else if (typeOfAccount.equalsIgnoreCase("nonsalary")){
        minBalance=1000;
        }
    }
    public void displayAcc(){
        System.out.println("fname: "+fName);
        System.out.println("mname: "+mName);
        System.out.println("lname: "+lName);
        System.out.println("mailId: "+mailId);
        System.out.println("Date of Birth: "+dob);
        System.out.println("gender: "+gender);
        System.out.println("Marital Status: "+mStatus);
        System.out.println("Account No: "+accountNo);
        System.out.println("Customer ID: "+custID);
        System.out.println("Type of Account: "+typeOfAccount);
        System.out.println("Min. Balance: "+minBalance);
        }

}

public class BankAccount {
public static void main(){
    AccountDetails acObj1 = new AccountDetails("Paul","J","AnderSon","Paul@gmail.com","3rd Jan, 1985",'M',"Single");
    acObj1.displayAcc();
}
}

共 (2) 个答案

  1. # 1 楼答案

    您还没有设置TypeOfcount,所以当您在这里的构造函数中引用它时

    if (typeOfAccount.equalsIgnoreCase("salary"))
    

    在这里

    else if (typeOfAccount.equalsIgnoreCase("nonsalary"))
    

    typeOfAccount既不等于也不等于,因此不会设置minBalance,因此您将在这里得到一个NullPointerException

    System.out.println("Type of Account: "+typeOfAccount);
    

    在这里

    System.out.println("Min. Balance: "+minBalance);
    

    因为这些值尚未设置

  2. # 2 楼答案

    改变主要方法的性质

    public static void main(){
    

    public static void main(String[] args){
    

    当运行类BankAccount(或任何其他类)时,jvm会搜索以字符串数组作为参数作为入口点的主方法,因此在您的情况下,jvm无法找到它,因为您没有正确的参数

    第二部分

    你只声明了typeOfAccount,但没有像我看到的那样初始化,你正在做typeOfAccount.equalsIgnoreCase()意味着它会像null.equalsIgnoreCase()(字符串的空默认值)一样给你一个空指针异常