首页 文章

打印没有元素的数组?

提问于
浏览
1

我有几个问题 . 我正在做家庭作业,但遇到了一些令人困惑的事情 . (我正在上一堂课,对错误感到抱歉 . )

实现一个采用整数数组和int x作为其大小的类 . 在类中创建一个方法,该方法创建一个长度比数据长度大1的新数组 . 然后创建一个方法将所有数据的元素复制到新数组中,并将x的值添加到数组的最后一个元素中 . 创建一个方法以返回新数组中的所有整数 .

这就是我所拥有的

package taskone;

import java.util.*;

class Arrayplus1 {

    int x;
    int data[];

    void example(int x) {
        this.x = x+1;
        this.data= new int[x];
    }

    void increaseSizeOfArray(int incrementSize) {
            int copiedArray[] = Arrays.copyOf(data, data.length + incrementSize);
            data = copiedArray;

    }

    void printall() {
        System.out.println(Arrays.toString(data));
    }
}

public class TaskOne {

    public static void main(String[] args) {
        example task = new example();
        task.printall();
    }

}

这只是返回null .

我的问题是上述任务的最后一点 . “创建一个方法来返回新数组中的所有整数 . ”

当我没有在数组中包含任何元素时,这怎么可能?我正在尝试遵循分配指南 . 谢谢 .

2 回答

  • 0

    首先,您无法创建方法的对象 . 您可以创建类的对象 . 每当你有一个类时,你应该至少有一个构造函数 . 此外,您的方法似乎应该返回一些数组和int值 . 实际上,我认为这段代码甚至不会编译 . 我建议你查看你的书 .

  • 0

    实现一个采用整数数组和int x作为其大小的类 .

    您可以使用constructor来完成此任务 . 您可以使用 this 表示法将传递给构造函数的参数保存为private变量和引用 . (见this

    public class TaskOne {
        private int [] array;
        private int x;
        public TaskOne(int [] array, int x) {
            this.array = array;
            this.x = x;
        }
    }
    

    在类中创建一个方法,该方法创建一个长度比数据长度大1的新数组

    在这里,您只需创建一个新数组 . 确保将新数组的长度设置为 array 的长度加1(以容纳额外的元素 x

    private int [] data = null;
    
    public void createNewArray() {
        this.data = new int[this.array.length + 1];
    }
    

    然后创建一个方法将所有数据的元素复制到新数组中,并将x的值添加到数组的最后一个元素中 .

    public void populateArray() {
        for (int t = 0; t < this.array.length; t++) {
            data[t] = this.array[t];
        }
        data[array.length] = this.x;
    }
    

    创建一个方法以返回新数组中的所有整数

    这被称为getter方法 . 您

    public int [] getClone() {
        return this.data;
    }
    

    您可能已经注意到我没有使用 Arrays.copyOf 方法 . 这实际上是一步创建并填充数组,因此,我将两个步骤分开以符合问题 .

相关问题