如何将这些变量从不同的方法传递到其他方法

时间:2016-09-21 19:04:50

标签: java methods

我自己学习java,而且我有这个代码,我正在努力解决这个问题。

以下是要求:

  • 编写一个具有两个双字段宽度和高度的Rectangle类,以及一个将参数值分配给这些字段的方法void setDimensions(double w, double h)
  • 然后,编写访问器(“getter”)方法double getArea()和double getPerimeter()计算并返回矩形的区域和周长,以及mutator(“setter”)方法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?

由于

1 个答案:

答案 0 :(得分: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}"

此外,scale方法应该通过作为参数提供的因子来增加长度和宽度。

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);
}