这是我的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]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码给出了错误Array Index Out Of Bounds.如何将数组的大小设为maxSize?
我试图发送maxSize直通构造函数,如上面的代码所示.但它不起作用.
我试过了
class Test
{
int maxSize;
int array[];
Test(int maxSize)
{
this.maxSize = maxSize;
this.array[] = new int[maxSize];
:::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)
它也不起作用.任何人都可以建议解决方案/改进,使其按预期工作.
这一行:
int array[] = new int[maxSize];
Run Code Online (Sandbox Code Playgroud)
在构造函数之前执行.
int maxSize;
Run Code Online (Sandbox Code Playgroud)
有效的意思是:
int maxSize = 0;
Run Code Online (Sandbox Code Playgroud)
所以数组总是初始化为零长度数组.将您的代码更改为:
int maxSize;
int array[];
Test(int maxSize)
{
this.maxSize = maxSize;
array = new int[maxSize];
}
Run Code Online (Sandbox Code Playgroud)
甚至不需要该类的maxSize成员,您甚至可以简单地执行此操作:
int array[];
Test(int maxSize)
{
array = new int[maxSize];
}
Run Code Online (Sandbox Code Playgroud)
你总是可以得到数组的大小(假设数组已经初始化并且不是null):
int length = array.length;
Run Code Online (Sandbox Code Playgroud)
在构造函数中初始化数组.语法是
Test(int maxSize) {
this.maxSize = maxSize;
this.array = new int[maxSize];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
408 次 |
| 最近记录: |