我自己学习java,而且我有这个代码,我正在努力解决这个问题。
以下是要求:
void setDimensions(double w, double h)
。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?
由于
答案 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);
}