【发布时间】:2020-10-17 23:07:15
【问题描述】:
我现在只是在学习 Java 中的类和构造函数,但我不明白为什么我不能从其他方法中打印出组合值。这是我在 main.java 中的代码:
public static void main(String[] args) {
Wall height = new Wall ();
Wall width = new Wall ();
Wall area = new Wall();
height.setHeight(5);
System.out.println("height = " + height.getHeight());
width.setWidth(4);
System.out.println("width = " +width.getWidth());
System.out.println("area = " +width.getWidth()*height.getHeight());
System.out.println(area.getArea());
System.out.println("AREA = " + area );
}
这是我在 Wall Class 中的代码:
public class Wall {
private double height;
private double width;
public Wall () {
this.height = height;
this width = width;
}
public Wall (double height, double width){
if (height <= 0 || width <= 0) {
this.height = 0;
this.width = 0;
}
}
public double getHeight () {
return this.height;
}
public double getWidth () {
return this.width;
}
public void setHeight (double height){
this.height = height;
}
public void setWidth (double width){
this.width = width;
}
public double getArea () {
this.height = height;
this width = width;
double area = getHeight()*getWidth();
return area;
}
最后一个方法 getArea 有问题,因为它打印出 0.0,就好像没有设置高度和宽度一样。我错过了什么?
【问题讨论】:
-
您的
getArea()方法有些奇怪:该方法的第一两行是什么?他们没有做任何有用的事情,只会混淆。摆脱它们。 -
另外,您正在为 2 个完全不同的 Wall 对象设置高度和宽度,这不会影响第三个 Wall 对象 area 的状态。您需要创建一个 Wall 对象,而不是三个,设置此对象的高度和宽度,区域将起作用。
-
是的,我只是添加了它们以确保 IntelliJ 理解的值相同,因为我尝试了其他任何方法但没有改变。删除它们,同样的问题。
-
其他第三个对象区域,我添加它只是为了解决我的问题,但我仍然不知道如何解决。
标签: java class constructor return