Java 为什么记录面积和记录周长始终为0?
我不明白为什么rec.area和rec.Permiture仅打印为0 矩形Java 为什么记录面积和记录周长始终为0?,java,methods,Java,Methods,我不明白为什么rec.area和rec.Permiture仅打印为0 矩形 class Rectangles { int weight; int height; int area; int perimeter; int area (int weight, int height) { return weight * height; } int perime
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);
}
}
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);
}
}
矩形测试
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);
}
}
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);
}
}
您混淆了字段名和方法名,最好是使它们不同,但无论如何要与代码不同
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;
因此,您可以删除它们,因为
面积
和周长
值没有改变,在您的方法中,您必须使它们无效
,并将计算出的值分配给请求的属性
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);
}
因为在任何地方都没有为
区域
或周长
赋值。您不应该将方法命名为字段,这是错误的(如示例所示)。如果你真的调用了这个方法,你会得到你期望的结果。像rec.area()
可能还需要指出area()
和permiture()
方法也需要正确实现…@RobbyCornelissen谢谢,我没有看到这一点。WFH?不,每个星期都要传真一个请求,然后你必须另外调用方法来分配这些值。