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