for循环只访问数组的最后一个对象,即使计数器变量递增

时间:2016-12-06 07:45:27

标签: java arrays object for-loop system.out

我创建了5个Box对象,将它们放在一个名为boxes的数组中,并希望迭代它们以打印它们的信息。获得访问的一个数组对象已成功打印,因此我知道方法很好。

但我的for循环似乎只能访问最后一个对象。以3.14,99.1和26.7作为参数的那个。它打印5次,所以我知道条件(x< boxes.length)正常工作。如何成功迭代数组中的每个对象?

import java.util.Scanner;

public class BoxTest {

    public static void main(String[] args) {          
        Box[] boxes= new Box[5];

        Scanner stdin = new Scanner(System.in);

        System.out.print("Enter a height: ");
        double height = stdin.nextDouble();

        System.out.print("Enter a width: ");
        double width = stdin.nextDouble();

        System.out.print("Enter a length: ");
        double length = stdin.nextDouble();


        Box first = new Box(width, length, height);
        boxes[0] = first;

        Box second = new Box();
        boxes[1] = second;

        Box third = new Box(2,3.5,5.75);
        boxes[2] = third;

        Box fourth = new Box(6.66,4.20,9.11);
        boxes[3] = fourth;

        Box fifth = new Box(3.14,99.1,26.7);
        boxes[4] = fifth;

        for (int x = 0; x < boxes.length; x++ ) {

            System.out.println(Box.toString(boxes[x]) + " Area: " +
                               Box.calculateArea(boxes[x]) + " Volume: " +
                               Box.calculateVolume(boxes[x]));

        }

}

1 个答案:

答案 0 :(得分:-3)

您的方法不应该是静态的。 将Box类更改为toString。 for(int x = 0; x&lt; boxes.length; x ++){     的System.out.println(盒[X]);