我对我的代码有疑问。
class Zillion
{
private int[] d;
public Zillion(int size)
{
d = new int[size];
}
public void timesTen()
{
for(int i = 0; i<d.length;i++)
{
d[i] = d[i + 1];
}
d[d.length]=0;
}
public String toString()
{
String num;
num= "";
for(int i = 0; i<d.length; i++)
{
num = num + d[i];
}
return num;
}
}
在我的 Zillion 类中,我尝试将数组表示的数字乘以 10。所以我所做的是将每个索引处的元素向左移动,并将最后一个索引处的值更改为 0。例如,
0 1 4 8 将变为 1 4 8 0。
我不确定我的逻辑是否有效,但这是我的第一次开始。 首先,我尝试使用指定的大小更改数组每个索引处的值,这是我的驱动程序文件。
class Driver
{
public static void main(String[] args)
{
Zillion z = new Zillion(5);
System.out.println(z); // 00000
for (int j = 0; j <= 5; j += 1)
{
z[j]=j;
}
System.out.println(z);
}
}
但是,Java 向我抛出一个错误并显示:“错误:(32, 14) java: 需要数组,但找到了无数个”。 我学了 C++,我相信我可以改变像 z[j] = j 这样的数组值,但我想这在 Java 中是不同的。 有没有办法可以更改我想要的特定索引的值?我使用 for 循环的原因是因为我想不出任何可以用来为我想要的每个索引分配值的方法。是否有可能在驱动程序文件中我创建一个数组,例如 0148 并调用我的“timesTen”方法来给我想要的东西? 谢谢!
最佳答案
您需要使用 gettor 方法公开无数个类的数组 d。
公共(public) getArray(){ return d;}
代替z[j]=j;你需要使用 z.getArray()[j] = j
此外,您的 timesTen 方法将导致该行中的 arrayindex 越界异常 d[d.长度]=0;
Java 数组不是动态增长的,因此索引应该小于数组大小。
关于java - 如何更改类内数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42315591/