繁体   English   中英

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

[英]How do I pass these variables from different methods in to other methods

我正在自己学习Java,并且我正在尝试这段代码。

要求如下:

  • 编写一个具有两个宽度和高度void setDimensions(double w, double h)字段的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吗?

谢谢

通常,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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM