我刚接触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;
}
答案 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()
创建一个实例。