2017-12-14 14 views
-1

私は数日前から課題を抱えていて、頭を壁に当てています。基本的に、多角形のような形状のスーパークラスを設定してから、いくつかのデータをカプセル化し、セッターとゲッターを使用してその情報をサブクラスに呼び出すと仮定しました。私は何度も本を読んでいて、チュートリアルをオンラインでたくさん見てきましたが、私のためにクリックしていないだけです。ここで私はスーパークラスのために、これまで持っているものの一例である:セッターとゲッターとサブクラスのトラブル

サブクラスがパラメータを定義することができるようになりますということでアイデア。 提案ごとに編集され、私は今の私の最初の1を持っている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を有する:式の不正スタート

そして線15/19分の18/22分の20/23/26分の25/28分の27/31分の29/34/38/40:クラス、インタフェース、または列挙型が必要です。

編集:私は抄録を削除したことが示唆されています。

+4

ステップ1は私たちにあなたが得るエラーの正確なリストを示すことになります。問題が何であるか分からなければ、何かを修正することはできません。 – csmckelvey

+1

'public void setWidth(double 10)'は見ています..... *面白い*、それの後ろの行もそうです。 – hnefatl

+0

1行目:トライアングルは抽象的ではなく、多角形 ラインで抽象メソッドcalcPerimeterを()をオーバーライドしない7:幅は、ポリゴン内のプライベートアクセス権を持っている 8行目:タイプ ラインの不正スタート:高さは、ポリゴン ライン12内のプライベートアクセス権を持っています14:クラス、インターフェイス、または列挙型が予想される 行17:クラス、インターフェイス、または列挙型が期待される 行20:クラス、インターフェイス、または列挙型が予想される 行22:クラス、インターフェイス、または列挙型が期待される 行24:または列挙型が予想される 行26:クラス、インターフェイス、または列挙型が期待される – Bucketman86

答えて

1

まず、Javaで関数を宣言する方法ではないことに注意してください。

public double getLength; 
     return this.Length; 
} 

が、これは

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

第二のものである必要がありますが、すべてのクラスがabstract宣言する場合は、(newキーワードを使用して)オブジェクトを作成することはできません。ところで、ここで は作業バージョンです:

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番目のパラメータを与えたいなら、あなたはこの1つを削除せずに4つの偶然にして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

関連する問題