我如何初始化另一个类的数组?

我正在尝试根据用户输入初始化一个数组,以便它可以是任何自定义大小。默认情况下,我已将所有 0.0 值的数组初始化为 10,但是当我尝试调用初始化数组的方法时,什么也没有发生,并且数组中的大小或值都不会改变。


班级编号:


public class Numbers {

private Float [] numbers;

private int default_size = 10;


public Numbers() {

    ///  write code here to intialize a "default" array since this is the default constructor

    numbers = new Float[default_size];

    for(int i = 0; i < default_size; i++)

    numbers [i] = (float) 0.0;

}


public Numbers (int size) {

    ///  write code here to initialize an "initial" array given the parameter size as this is an initial constructor

    numbers = new Float[size];

}


public void initValuesInArray() {

    /// write code here to intialize the values in the array

    Scanner scan = new Scanner(System.in);

    for (int i = 0; i < numbers.length; i++) {

        System.out.println("Enter Value : ");

        numbers[i] = scan.nextFloat();

    }

}


public String toString() {

    // write code to return the values in the array in a list format - one value per line

    for (int i = 0; i < numbers.length; i++)

    System.out.println(numbers[i]);

    return " ";

}


public float calcAverage() {

    // write code to return the average of the values in the array

    double sum = 0.0;

    for (int i = 0; i < numbers.length; i++)

        sum += numbers[i];

    double average = sum / numbers.length;

    System.out.println(average);

    return (float) average;

}

}


主类:


public class Main {

public static void main (String [] args) {


    // write the code here to implement the menu as specified in Lab 1


    boolean menuLoop = true;

    while(true) {

    System.out.println("Enter 1 to initialize a default array");

        }


    } 

}

}


它需要能够根据用户输入更改数组的大小,然后用户可以将值输入到数组中。


www说
浏览 176回答 2
2回答

拉莫斯之舞

您没有使用public Numbers (int size)在类中创建的构造函数Numbers。此外,您正在创建一个名为 的新变量numbers,而不是分配本地字段obj。这:&nbsp;&nbsp;&nbsp;&nbsp;Numbers&nbsp;[]&nbsp;numbers&nbsp;=&nbsp;new&nbsp;Numbers[x];应该&nbsp;&nbsp;&nbsp;&nbsp;obj&nbsp;=&nbsp;new&nbsp;Numbers(x);

慕斯王

如果您的元素数量不固定,则不应使用 Array。而是使用List或ArrayList(List 的子类)。您可以在以下位置找到您需要的所有方法: developer.android.com/reference/java/util/ArrayList编辑 24/01/19:如果您需要ListorArrayList默认为 10,以防用户不输入值,您可以创建一个IF/ELSE自动填充列表的,或者使用SWITCH CASE您已经拥有的例如:List<Integer> myList = new ArrayList<Integer>();float defaultValue = 0.0;case 1:&nbsp; &nbsp; for(int i = 0; i < 10; i++) {&nbsp; &nbsp; &nbsp; &nbsp; myList.add(defaultValue)&nbsp; &nbsp; }&nbsp; &nbsp; break;case 2:&nbsp; &nbsp; System.out.println("Enter the new size of array: ");&nbsp; &nbsp; int x = scan.nextInt();&nbsp; &nbsp; for(int i = 0; i < x; i++) {&nbsp; &nbsp; &nbsp; &nbsp; myList.add(defaultValue)&nbsp; &nbsp; }&nbsp; &nbsp; break;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java