显示错误的输出,我无法弄清楚我的错误

时间:2019-10-25 09:22:52

标签: java

我希望我的程序显示正方形和矩形区域,因为您可能已经猜到这是一个作业问题,所以我不能真正更改格式。

\b

2 个答案:

答案 0 :(得分:1)

在您的代码displayarea()方法中,您正在创建新的类对象(平方/矩形)以调用area()方法。因此,扫描仪使用area()方法向其分配值的对象与您要打印区域的对象不同。因此,从技术上讲area()displayarea()是在类的不同对象上调用的。因此,您总是得到null或0。在一个对象中分配的数据不会被另一个对象共享。 (直到变量未声明为静态的,所有类实例之间共享的静态变量)

因此,您的代码应如下更新(与Rectangle相同):

public void displayarea() {
    area();
    System.out.println("The area of the square is: " + (len * len));
  }

答案 1 :(得分:1)

问题是您在错误的对象上调用区域。

public void displayarea() {
    Square q = new Square();
    q.area();
    System.out.println("The area of the square is: " + (len * len));
}

在正方形A上调用它时,它将首先创建正方形B并调用B.area()。因此,在进行面积计算时,结果为0。所有值都在正方形B上设置,而正方形A的值保持不变。

相反,您想在正方形A上呼叫区域。

public void displayarea() {
    area();
    System.out.println("The area of the square is: " + (len * len));
}