2017-12-14 19 views
-1

저는 며칠 동안 과제물을 작업 중이며 벽에 머리를 대고 있습니다. 기본적으로 모양과 같은 다각형의 수퍼 클래스를 설정 한 다음 일부 데이터를 캡슐화하고 setter 및 getters를 사용하여 해당 정보를 하위 클래스로 호출한다고 가정합니다. 나는 우리 책을 반복해서 읽고 온라인 튜토리얼을 보았지만 그저 나를 위해 클릭하지는 않았다. 여기에 지금까지 슈퍼 클래스에있는 내용의 예는 다음과 같습니다세터 및 게터 및 서브 클래스 관련 문제

서브 클래스는 매개 변수를 정의 할 수 있다는 것을 생각. 나는이 올바른 생각,하지만 난 지금 처음으로 하나가 heres는 무엇을 내 서브 클래스, 제안에 따라 편집을 시작할 때 나는 그것을 잃는 : 나는 알 수 있도록

public class Triangle extends Polygon { 

    public Triangle(){ 
    } 

    public void Triangle (double Base, double Height) { 
       this.Width = Base; 
       this.Height = Height; 
       this.Length = Length; 
    } 

    public double getWidth; 
     return this.Width; 
} 
    public static setWidth(double Width){ 
     this.Width = 10; 

} 
    public double getHeight; 
     return this.Height; 

} 
    public static setHeight(double Height){ 
     this.Height = 10; 
    } 
    public double getLength; 
     return this.Length; 
} 
    public static setLength(double Width){ 
     this.Height = 10; 
    } 

    @Override 
    public calcArea() { 
     return 0.5 * Width * Height; 
     } 
    @Override 
    public double calcPerimeter() { 
     return Length + Length + Length; 
    } 
} 

이 진행중인 거대한 작품을 그 난장판 일종의,하지만 난 거의 모든 라인에 던져 오류가 있고 내가 세트의 어떤 부분을/내가 잘못하고있어. 올바른 방향으로 나를 가리키는 어떤 도움이라도 감사 할 것입니다.

바로 지금 오류가 있습니다 : 줄 7/8/9 : 너비. 높이, 길이 다각형 전용 액세스

라인 (13)이 : 식 불법 개시

그리고 라인 18분의 15/20분의 19/23분의 22/26분의 25/28분의 27/31분의 29/34/38/40 : 클래스, 인터페이스 또는 열거 형이 예상됩니다.

편집 : 제가 초록을 삭제 했으므로 그렇게했습니다.

+4

단계 :

은 여기 다각형 클래스입니다. 문제가 무엇인지 모르는 경우에는 문제를 해결할 수 없습니다. – csmckelvey

+1

'public void setWidth (double 10)'보이는 ..... * 흥미로운 *, 그 뒤의 행처럼. – hnefatl

+0

줄 1 : 삼각형 추상하지 않고 다각형 라인에서 추상적 인 방법 calcPerimeter()를 오버라이드 (override)하지 않습니다 7 : 폭 다각형의 개인 액세스 할 수 있습니다 행 8 : 유형 라인의 불법 시작 : 높이 다각형 라인 (12)의 개인 액세스 할 수 있습니다 14 : 클래스, 인터페이스 또는 열거 형이 예상 됨 라인 17 : 클래스, 인터페이스 또는 열거 형이 예상 됨 라인 20 : 클래스, 인터페이스 또는 열거 형이 예상 됨 라인 22 : 클래스, 인터페이스 또는 열거 형이 예상 됨 라인 24 : 클래스, 또는 열거 형이 예상 됨 행 26 : 클래스, 인터페이스 또는 열거 형이 예상 됨 – Bucketman86

답변

1

먼저 Java에서 함수를 선언하는 방식이 아니라는 점에 유의해야합니다.

public double getLength; 
     return this.Length; 
} 

하지만 당신은 당신이 (new 키워드를 사용하여) 개체를 만들 수 없습니다 추상적 인 모든 클래스를 선언하면이,

public double getLength(){ 
     return this.Length; 
} 

두 번째 일이 될 것이다.

public class Triangle extends Polygon { 

    public Triangle(double base,double height,double length){ 
     super(base,height,length); 
    } 


    @Override 
    public double calcArea() { 
     return 0.5 * this.getWidth() * this.getHeight(); 
     } 
    @Override 
    public double calcPerimeter() { 
     return this.getLength() + this.getLength() + this.getLength(); 
    } 


    //tests 

    public static void main(String [] args) { 
     Triangle triangle = new Triangle(10,20,30); 
     System.out.println(triangle.getWidth() + " width of a triangle"); 
     System.out.println(triangle.getHeight() + " height of a triangle"); 
     System.out.println(triangle.getLength() + " length of a triangle"); 

    } 
} 

당신은 슈퍼 클래스도 (측면) 4 매개 변수를주고 싶은 경우에 당신이 하나를 삭제하지 않고 4 paramters 하나 추가 생성자를 생성 할 수 있습니다 : BTW 여기 는 작업 버전입니다. (1) 우리에게 당신이 얻을 오류의 정확한 목록을 보여주는 것

public abstract class Polygon { 
    private double Length; 
    private double Width; 
    private double Height; 

public Polygon(double base, double height, double length) { 
      this.Width = base; 
      this.Height = height; 
      this.Length = length; 
} 

public abstract double calcArea(); 
public abstract double calcPerimeter(); 


public double getWidth() { 
    return this.Width; 
} 

public void setWidth(double Width){ 
    this.Width = Width; 

} 

public double getHeight() { 
    return this.Height; 

} 
public void setHeight(double Height){ 
    this.Height = Height; 
} 
public double getLength() { 
    return this.Length; 
} 

public void setLength(double length){ 
    this.Length = length; 
} 
} 
+0

오, 세상에 나는 내 괄호를 잊어 버렸다고 믿을 수 없어, 고마워! 그리고 이것은 내가 사용했던 참조 자료를 훨씬 더 의미있게 만든다. – Bucketman86