java - 如何更改类内数组的值

标签 java

我对我的代码有疑问。

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/

相关文章:

java - Socket.io 连接不适用于多个 fragment

java - 字符串拆分错误输出

java - removeAll 似乎影响了它的论点

java - 不从seda队列消费时如何用Camel释放文件锁?

Java:通过套接字向/从用 C 编码的程序发送/接收 int 数组

java - Leiningen 可以直接从 Maven 安装(并让我的 Clojure 项目使用)Java 包吗?

java - 如何使用 SAX 增加 entityExpansionLimit 来解析 XML 文件

java - 静态方法和字段是否在定义它们的类的实例中占用内存?

Java找不到方法

java - 我可以在 Android 谷歌地图 API 中设置折线不透明度吗