5 개의 Box 객체를 만들고 box라는 배열에 배치하고 정보를 인쇄하기 위해 반복합니다. 액세스되는 하나의 배열 객체가 성공적으로 인쇄되므로 메서드가 잘 작동합니다.for 루프는 카운터 변수가 증가하더라도 배열의 마지막 객체에만 액세스합니다.
그러나 내 for 루프는 마지막 개체에만 액세스하는 것으로 보입니다. 그 중 하나는 3.14,99.1 및 26.7입니다. 조건부 (x < boxes.length)가 제대로 작동하고 있으므로 5 번 인쇄됩니다. 어떻게 배열의 각 객체를 성공적으로 반복 할 수 있습니까?
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]));
}
}
상자 클래스를 포함하지 않았습니다. Box 클래스 멤버는 정적입니까? 그들은해서는 안됩니다. 그리고'toString','calculateArea','calculateVolume'도 정적이어서는 안됩니다. – Eran
@Eran 그레이트 캐치 –
그래, 그들은 정적 .. 어떻게 알았어?! 그들에게 문제를 수정하면 바뀔까? 나는 5 분 안에 그것을 돌려야 만했다. 나는 단지 버전 5의 마지막 물체를 인쇄했다. –