这是我的java代码:-
import java.util.Scanner;
class Test
{
int maxSize;
int array[] = new int[maxSize];
Test(int maxSize)
{
this.maxSize = maxSize;
}
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.print("Enter size of Array:- ");
int maxSize = input.nextInt();
Test stack = new Test(maxSize);
System.out.println("Enter array element:- ");
for(int i=0; i<maxSize; i++)
{
stack.array[i] = input.nextInt();
}
for(int i=0; i<maxSize; i++)
{
System.out.print(stack.array[i]);
}
}
}
这段代码给出了一个错误,Array Index Out Of Bounds
。如何将数组的大小设置为 maxSize
?
我尝试通过构造函数发送 maxSize
,如上面的代码所示。但它不起作用。
我试过
class Test
{
int maxSize;
int array[];
Test(int maxSize)
{
this.maxSize = maxSize;
this.array[] = new int[maxSize];
:::::::::::::::::::::::::
也不行。任何人都可以提出解决方案/改进以使其按预期工作。
最佳答案
这一行:
int array[] = new int[maxSize];
在构造函数之前执行。
int maxSize;
有效的意思是:
int maxSize = 0;
所以 array 总是初始化为零长度数组。将您的代码更改为:
int maxSize;
int array[];
Test(int maxSize)
{
this.maxSize = maxSize;
array = new int[maxSize];
}
类的 maxSize 成员甚至不是必需的,您甚至可以简单地这样做:
int array[];
Test(int maxSize)
{
array = new int[maxSize];
}
你总能得到数组的大小(假设 array 已经被初始化并且不为空):
int length = array.length;
关于java - java类中用户定义的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48664457/