gpt4 book ai didi

java - java类中用户定义的数组大小

转载 作者:行者123 更新时间:2023-11-29 09:40:30 25 4
gpt4 key购买 nike

这是我的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];
}

类的 ma​​xSize 成员甚至不是必需的,您甚至可以简单地这样做:

int array[];

Test(int maxSize)
{
array = new int[maxSize];
}

你总能得到数组的大小(假设 array 已经被初始化并且不为空):

int length = array.length;

关于java - java类中用户定义的数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48664457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com