JavaRush /Java Blog /Random-KO /Kathy Sierra 및 Bert Bates의 Java 학습 오류
lookinbody
레벨 11
Москва

Kathy Sierra 및 Bert Bates의 Java 학습 오류

Random-KO 그룹에 게시되었습니다
여러분 좋은 오후입니다. 일과 JavaRush 사이에 Kathy Sierra와 Bert Bates의 " Learning Java "를 구입하여 읽기 시작했습니다. 오늘은 교과서에 있는 또 다른 숙제를 했습니다. " class Triangle "(95페이지) 문제를 해결할 수 없었습니다 . IntelliJ IDEA에서는 제가 필요한 답변이 아니었습니다. 나는 두 시간을 보냈고 가능한 모든 옵션을 시도했지만 아무것도 작동하지 않았습니다. 그는 침을 뱉고 답을 찾으러 갔다. 그리고 나의 첫 번째 결정이 있습니다. 결과적으로 이 코드를 IntelliJ IDEA에 입력하면 교과서에 적힌 답이 나오지 않게 됩니다. 교과서의 오류답변의 올바른 솔루션은 다음과 같습니다.
public class Triangle
{
    double area;
    int height;
    int lenght;
    public static void main(String[] args)
    {
        int x = 0;
        Triangle [] ta = new Triangle[4];
        while (x < 4)
        {
            ta[x] = new Triangle();
            ta[x].height = (x + 1) * 2;
            ta[x].lenght = x + 4;
            ta[x].setArea();
            System.out.print("треугольник " +x+ ", зона");
            System.out.println(" = " + ta[x].area);
            x = x + 1;
        }
        int y = x;
        x = 27;
        Triangle t5 = ta[2];
        ta[2].area = 343;
        System.out.print("y = " + y);
        System.out.println(", зона t5 = " + t5.area);
    }
    void setArea()
    {
        area = (height + lenght) / 2;
    }
}
교과서 저자에 따르면 대답은 다음과 같아야 합니다.
треугольник 0, зона = 4.0
треугольник 1, зона = 10.0
треугольник 2, зона = 18.0
треугольник 3, зона = 28.0
y = 4, зона t5 = 343.0
실제로 대답은 다음과 같습니다.
треугольник 0, зона = 3.0
треугольник 1, зона = 4.0
треугольник 2, зона = 6.0
треугольник 3, зона = 7.0
y = 4, зона t5 = 343.0
내가 할 수 있는 대답은 두 가지뿐이었습니다.
  1. 기술적인 불완전성과 오타.

  2. 이 책은 Java 5.0을 사용하여 작성되었으며 Java 8.0에서 문제를 해결했습니다.

내 추측이 얼마나 맞는지 알려주세요.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION