我得到了这个愚蠢的考试问题,我告诉他们在MAIN方法中制作一系列对象。
我用两个变量定义了类Account
- String owner和double amount。
然后我被告知让Account类处理所有金额的值变化。等等
但我无法弄清楚我做错了什么 - 我无法从getAmount()
访问数组。
public static void main(String[] args)
{
Account[] account = new Account[10];
for ( int i=0; i<account.length; i++)
{
account[i]=new Account();
}
account[0].owner = "Thomas";
account[0].amount = 24325;
System.out.println(getAmount(0)); //<- dont work, but works with account[0].amount
}
public static double getAmount(int x)
{
double s = account[x].amount; //<<------- CANNOT FIND SYMBOL
return s;
}
答案 0 :(得分:2)
account
是main方法的本地方法,因此除非作为参数传递给它们,否则无法从其他方法访问它。
另一种方法是将其声明为静态成员:
static Account[] account = new Account[10];
public static void main(String[] args)
{
for ( int i=0; i<account.length; i++)
{
account[i]=new Account();
}
account[0].owner = "Thomas";
account[0].amount = 24325;
System.out.println(getAmount(0));
}
答案 1 :(得分:1)
在这种情况下,account是main的局部变量,如果你想使用方法getAmount,你有两个选择: - 将数组声明为静态并将其放在main方法之外(数组将是一个全局变量) - 将数组作为getAmount中的参数。
public static void main(String[] args)
{
Account[] account = new Account[10];
for ( int i=0; i<account.length; i++)
{
account[i]=new Account();
}
account[0].owner = "Thomas";
account[0].amount = 24325;
System.out.println(getAmount(0), account); //<- dont work, but works with account[0].amount
}
public static double getAmount(int x, Account[] account)
{
double s = account[x].amount; //<<------- CANNOT FIND SYMBOL
return s;
}