我不明白为什么rec.area和rec.perimeter只打印0
矩形
class Rectangles {
int weight;
int height;
int area;
int perimeter;
int area (int weight, int height) {
return weight * height;
}
int perimeter (int weight, int height) {
return 2 * (weight + height);
}
}
RectanglesTest
class RectanglesTest {
public static void main(String[] args) {
Rectangles rec = new Rectangles();
rec.weight = 10;
rec.height = 15;
System.out.println(rec.weight);
System.out.println(rec.height);
System.out.println(rec.area);
System.out.println(rec.perimeter);
}
}
答案 0 :(得分:1)
您将字段名与方法名混淆-最好使它们不同,但无论如何都要与您的代码
public static void main(String[] args) {
Rectangles rec = new Rectangles();
rec.weight = 10;
rec.height = 15;
System.out.println(rec.weight);
System.out.println(rec.height);
System.out.println(rec.area ());
System.out.println(rec.perimeter ());
}
在使用字段时,不需要将其他参数传递给这些方法,因此将其更改为
int area () { ....}
int perimeter () { ....}
更好地命名方法是动词,例如calcArea
实际上您不使用
int area;
int perimeter;
所以您可以删除它们
答案 1 :(得分:0)
由于area
和perimeter
的值没有变化,因此在您的方法中,必须将它们设为void
并将计算出的值分配给请求的属性
class Rectangles {
int weight;
int height;
int area;
int perimeter;
void area () {
area = weight * height;
}
void perimeter () {
perimeter = 2 * (weight + height);
}
}
在您的main
方法中,您必须先调用这些方法
public static void main(String[] args) {
Rectangles rec = new Rectangles();
rec.weight = 10;
rec.height = 15;
rec.area();
rec.perimeter();
System.out.println(rec.weight);
System.out.println(rec.height);
System.out.println(rec.area);
System.out.println(rec.perimeter);
}