2013-07-06 4 views
0

저는 Dr. Java를 사용하여 사각형 클래스를 만들려고합니다. 사각형 클래스에서 대부분의 코드를 가져 왔지만 엉망이되었습니다. 저는 현재 Java에 관해서 초보자이므로 지금 당장 실망합니다. 내 정사각형 교정 방법에 대한 수정이나 조언이 있으면 알려주십시오. 또한 여기 사각형 클래스를 만드는 데 많은 도움이 필요합니다.

package graphics2; 

/** 
* A class that represents a square with given origin, width, and height. 
*/ 
public class Square extends Graphics { 
    // The private width and height of this square. 
    private double width = 0; 
    private double height = 0; 

    /** 
    * Constructs a square with given origin, width, and height. 
    */ 
    public Square(Point origin, double side) { 
    super(origin, side, side); 
    setOrigin(new Point(0, 0)); 
    width = height = side; 
} 

    /** 
    * Constructs a square with given width and height at origin (0, 0). 
    */ 
    public Square(double side) { 
    setOrigin(new Point(0, 0)); 
    width = height = side; 
    } 
    /** 
    * Returns the square's side of this square. 
    */ 
    public double getSide() {return width;} 

    /** 
    * Returns the width coordinate of this square. 
    */ 
    public double getWidth() {return width; } 

    /** 
    * Returns the height coordinate of this square. 
    */ 
    public double getHeight() {return height; } 

    /** 
    * Returns the area of this square. 
    */ 
    public double area() { 
    return width * height; 
    } 
} 

감사

내가 받고있어 오류입니다 :

1 error found: 
File: C:\Users\GreatOne\Desktop\06Labs-\graphics2\Square.java [line: 15] 
Error: The constructor graphics2.Graphics(graphics2.Point, double, double) is undefined 
+1

변수를 선언하지 않았으므로 변수를 어떻게 사용합니까? 또한'Graphics'에서 파생 하시겠습니까? 네모는 정말 그래픽 컨텍스트인가? – Zong

답변

5

크리스, 그래픽을 연장하지 않습니다. 그건 아주 잘못입니다. 아무것도 확장하지 마십시오.

생성자를 수정해야하며 정사각형 생성 방법과 일치하지 않습니다.

여러 변수가 누락되었습니다.

나는이 혼란을 밖으로 stackoverflow 누군가를 가지고 제안, 당신의 교과서를 열거 나 온라인 튜토리얼을 읽어보십시오. 몇 분 안에이 문제를 해결할 수 있지만 회의적이므로 도움이되지 않을 것입니다. 사용법을 이해할 수 있습니다.

위로 공부하십시오. 당신은 그것을 위해 더 나아질 것입니다.

+0

감사합니다. 계속 공부하고 노력할 것입니다. 나는 하루 종일 꼼짝 못하게하고있다. 그리고 마감일에 이르러 여기에 올렸다. – user2510694

+0

나는 전에 거기에 있었고, 나는 그것을 알 수있다. 나는 여기서 너를 불러내 려하지 않고, 내가 대학 생활을 100 % 할 수있을만큼 충분히 강해 졌으면 좋겠다. 행운을 빌어 요. –

+1

다시 한 번 고맙습니다. 배우기가 쉽지 않습니다. 하. – user2510694

0

코드는 오류에 따라 설명했다

오류

  • 오류 1 줄 : 15] : 생성자 미정. 원하는 것은 super(origin, side); 대신 super(origin, side, side);이 필요합니다. : 어느 쪽이든은, 또는 당신은 super(origin, side, side);

  • 오류 2,3,4,5 [17, 18, 26, 27 라인]와 생성자를 정의해야합니다 당신은 변수 w와 생성자 내부 h를 사용하고,없이 메서드 매개 변수로 사용합니다. 이 사각형은 원하는 사각형이므로 두 생성자에서 width = w 및 을 width = sideheight = side으로 변경하십시오. 변수 side을 메서드 매개 변수에 전달할 때 문제가 발생하지 않습니다.

  • 마지막 오류 [선 : 32] : 당신은 게터 방법 public double getSide()에서 변수 side 복귀된다. side은 클래스의 변수가 아니므로 오류가 표시됩니다. 이 값을 return width 또는 return height으로 변경하십시오. 이것은 정사각형이므로 양쪽 모두 동일합니다.

+0

Thanks @ aksh1t 첫 번째 오류를 제외한 모든 오류를 수정했습니다. 나는 uper (origin, side, side)를 정의 할 필요가 있음을 안다; 하지만 그것을 변경하는 방법을 모르겠다. – user2510694

+0

글쎄,'super (origin, side, side)'라인에 대해서는 현재 클래스의 수퍼 클래스 (예 : Graphics)에서'Graphics (Point origin, double side, double side)'. 그렇지 않다면, 당신은 그것을 만들어야 할 것입니다. 또는'super (origin, side, side)'라인을'Graphics' 클래스에 정의 된 __is__ 생성자로 대체 할 수 있습니다. – aksh1t

관련 문제