将 setter 和 getter 添加到数组,创建 for 循环方法并赋值

Add setters and getters to an array , create a for-loop method and assign values

我是 Java 的新手。我在 class 中创建了一个数组,并为其创建了 setter 和 getter。

    public class Calculation{
        private int[] data;
        private int size;
    
    
    public int[] getData() {
        return data;
    }
    
    public void setData(int[] data) {
        this.data = data;
    }

    public int getSize() {
        return size;
    }
    
    public void setSize(int size) {
        this.size = size;
    }
}

并且我使用数组创建了一个循环方法。但是它的输出是1。 方法,

public int ProductOfArray(int data[], int size){
    int product = 1;
    for (int i =1; i <= getSize(); i++) {
        product = product * this.data[i];
    }
    return product;
}

主要,

System.out.println("Enter size: ");
int size = num.nextInt();
                
cal1.setSize(size);
System.out.println("Enter elements of array: ");
[] myArray = new int[size];
                
for(int i=0; i<size; i++) {
                     
    myArray[i] = num.nextInt();
}
                
System.out.println(cal2.ProductOfArray(myArray, size));

当我 运行 这个程序时,它显示最后的输出为 1。它不计算用户输入。

正如 Thomas 提到的,您需要将 Calculation 实例中的数据(在本例中我为 cal1 这样做)设置为您从 for 循环中读入的数据。这是您可以做到的一种方法:

import java.util.Scanner;

public class TestCalc {

    public static void main(String[] args) {
    Scanner num = new Scanner(System.in);
    System.out.println("Enter size: ");
    int size = num.nextInt();
    Calculation cal1 = new Calculation();
                    
    cal1.setSize(size);
    System.out.println("Enter elements of array: ");
    int [] myArray = new int[size];
            
    for(int i=0; i<size; i++) {
                         
        myArray[i] = num.nextInt();
    }
    
    cal1.setData(myArray); //Here is where you set the int array field of the object.
                    
    System.out.println(cal1.ProductOfArray(myArray, size));

    }

}

class Calculation {
    private int[] data;
    private int size;

    public int[] getData() {
    return data;
    }

    public void setData(int[] data) {
    this.data = data;
    }

    public int getSize() {
    return size;
    }

    public void setSize(int size) {
    this.size = size;
    }

    public int ProductOfArray(int data[], int size) {
    int product = 1;
    for (int i = 1; i < getSize(); i++) {
        product = product * this.data[i];
    }
    return product;
    }
}

注意:我已将 class 放在与 main 方法相同的文件中。您可能有一个单独的文件,您可以将此 class 内容复制并粘贴到其中以使其正常工作。我还更改了 for 循环的边界(从 <=getSize()<getSize()),这样您就不会出现越界错误。

输出:

Enter size: 
5
Enter elements of array: 
1
2
3
4
5
120