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

Java 无法访问同一类中的对象数组?,java,arrays,object,Java,Arrays,Object,我有一个很愚蠢的试题,我被告知在MAIN方法中创建一个对象数组。 我用两个变量定义了类Account——stringowner和doubleamount 然后我被告知让Account类处理所有金额总和的值的更改。等 但是我无法找出我做错了什么-我无法从getAmount()访问数组 publicstaticvoidmain(字符串[]args) { 账户[]账户=新账户[10]; for(int i=0;iaccount是main方法的本地方法,因此除非作为参数传递给其他方法,否则无法从其他方法

我有一个很愚蠢的试题,我被告知在MAIN方法中创建一个对象数组。 我用两个变量定义了类
Account
——stringowner和doubleamount

然后我被告知让Account类处理所有金额总和的值的更改。等 但是我无法找出我做错了什么-我无法从
getAmount()
访问数组

publicstaticvoidmain(字符串[]args)
{
账户[]账户=新账户[10];

for(int i=0;i
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));
}
静态账户[]账户=新账户[10];
公共静态void main(字符串[]args)
{

对于(int i=0;i,在本例中,account是main的局部变量,如果要使用getAmount方法,有两个选项: -将数组声明为静态并将其从主方法中取出(数组将是一个全局变量) -将数组作为参数传递到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;
}
publicstaticvoidmain(字符串[]args)
{
账户[]账户=新账户[10];

for(int i=0;这是告诉我在main方法中创建数组。@ThomasWegener您仍然可以在main方法中初始化它,但是您必须在外部声明它才能从其他方法访问它。如果您想让它保持在main的本地,
getAmount
可以将数组作为参数-
getAmount(account,0)
Thanx。现在我明白了。:)
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;
}