2016-09-21 5 views
0

私は自分でjavaを学習しています。私はこのコードを使って作業しようとしています。ここでこれらの変数を別のメソッドから別のメソッドに渡すには

は要件は次のとおりです。

  • は、幅と高さ2重のフィールドを持つクラスRectangleを書き、これらのフィールドにそのパラメータ値を代入する方法void setDimensions(double w, double h)
  • 次に、アクセサー(「ゲッタ」)メソッドdouble getArea()とダブルgetPerimeter()を書き込んで、矩形の面積と周囲長を計算して返します。また、幅と高さを乗算するミューテータ(「セッタ」)メソッドvoid scale(double sf)その矩形のスケーリングファクタsfによって決定される。
  • クラスに適切なtoStringメソッドを記述することで完成します。それは言われていると

    public class Rectangle { 
    
    
    double width; 
    double length; 
    
    /** 
    */ 
    public void setDimensions(double width, double length) 
    { 
        width = 5; 
        length = 10;   
    } 
    
    /*  
    */ 
    public static double getPerimeter(double width, double length) 
    { 
        double perimeter = 2 * (width + length); 
        return perimeter; 
    } 
    
    /* 
    */ 
    public static double getArea(double width, double length) 
    { 
        double area = (width * length); 
        return area; 
    } 
    
    /** 
    * 
    */ 
    public void scale(double sf) 
    { 
        sf *= length; 
        sf *= width; 
    
    } 
    
    public String toString() 
    { 
        System.out.println("The length is: " + length); 
        System.out.println("The width is: " + width);   
    
        getArea(width, length); 
        getPerimeter(width, length); 
        return "The area is:" + area; 
        return "The perimeter is:" + perimeter; 
    
    
    } 
    

    }

、私はtoStringメソッドをフォーマットする方法で混乱しています。このtoStringメソッドは、単に領域、周辺、sfなどの値を出力することになっていますか?または、ある種の文字列を返すことになっています(私は新しいです、私は完全には分かりません)。 また、私はSFメソッドを持っているとは思えません。メソッドはメソッドでSFを初期化する必要がありますか?

ありがとう

+0

可能な重複[JavaでtoStringメソッドを使用する方法?](http://stackoverflow.com/questions/3615721/how-to-use-the-tostring-method-in-java) –

+0

[一般に、toStringメソッドは、このオブジェクトを「テキストで表す」文字列を返します。その結果は、人が読みやすい簡潔で有益な表現でなければなりません。](http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) – azurefrog

+1

PS APIドキュメントを今すぐブックマークしてください。あなたは将来それらを読むのに多くの時間を費やすでしょう。 – azurefrog

答えて

1

通常、toStringメソッドは、オブジェクトのプロパティ/値を出力する人間が読める文字列です。

@Override 
public String toString() { 
    String myStr= "{length: " + getLength() + ", width: " + getWidth() + 
    ", perimiter: " + getPerimiter() + ", area: " + getArea() + "}"; 
    return myStr; 
} 

// will output something like "{length: 2, width: 3, perimiter: 10, area: 6}" 

また、スケール方法では、長さと幅を引数として指定する必要があります。

public void scale(double sf) 
{ 
    length *= sf; 
    width *= sf; 
} 

// better to create getters and setters and use these. 

public void setLength(ln){ 
    this.length = ln; 
} 
public double getLength(){ 
    return this.length; 
} 
// same for width, then... 

public void scale(double sf){ 
    setLength(getLength()*sf); 
    setWidth(getWidth()*sf); 
} 
関連する問題