可以在银行帐户项目中查找创建帐户符号

时间:2014-11-06 18:32:34

标签: java

我刚接触Java并创建了这个类,它调用另一个名为BankAccount的类,并且我得到了"找不到符号"我编译时出错,方法正好在我的主要之下。任何帮助都会很棒,谢谢。

import java.util.Scanner;
public class InClass
{
    public static void main (String []args)
    { 
        BankAccount account;

        account = new createAccount();

    }

    public BankAccount createAccount() 
    {
        Scanner kb = new Scanner (System.in);   //input for Strings
        Scanner kb2 = new Scanner (System.in);  //input for numbers
        String strName;                         //Holds account name
        String strAccount;                      //Holds account number
        String strResponse;                         //Holds users response to account creation
        double dDeposit;                        //Holds intial deposit into checking
        BankAccount cust1;

        System.out.print ("\nWhat is the name of the account? ");
        strName = kb.nextLine();
        while (strName.length()==0)
        {
            System.out.print ("\nPlease input valid name.");

            System.out.print ("\nWhat is the name of the account?");
            strName = kb.nextLine();
        }

        System.out.print ("\nWhat is your account number?");
        strAccount = kb.nextLine();
        while (strAccount.length()==0)
        {
            System.out.print ("\nPlease enter valid account number.");
            System.out.print ("\nWhat is your account number?");
            strAccount = kb.nextLine();
        }

        ......

        return cust1;
 }

3 个答案:

答案 0 :(得分:1)

这是问题所在:

account = new createAccount();

我没有尝试调用名为createAccount的方法 - 它试图调用名为createAccount的类型的构造函数,但是你没有这样做一种类型。

你可以写:

account = createAccount();

...但那会失败,因为createAccount实例方法而不是静态方法(并且你没有InClass的实例打电话给它。你可能希望它是一个静态的方法。

作为旁注,我强烈建议您在首次使用时声明变量,并删除伪匈牙利符号,例如。

String name = kb.nextLine();

而不是:

String strName;
...
strName = kb.nextLine();

在Java中,您不需要在方法的顶部声明所有局部变量 - 这样做会损害可读性。

答案 1 :(得分:0)

createAccount方法是非静态的,并与InClass类相关联。要调用该方法,您需要一个InClass的实例。也许是这样的:

public static void main(String[] args) {
    InClass inClass = new InClass();
    BankAccount account = inClass.createAccount();
}

答案 2 :(得分:0)

如果您需要非静态方法,可以更改

account = new createAccount();

account = new InClass().createAccount();

因为createAccount()方法不是静态的,所以它需要周围类的实例。 new InClass()创建一个实例。