无法访问同一类中的对象数组?

时间:2014-11-09 09:10:28

标签: java arrays object

我得到了这个愚蠢的考试问题,我告诉他们在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;
}

2 个答案:

答案 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;
}