我希望我的程序显示正方形和矩形区域,因为您可能已经猜到这是一个作业问题,所以我不能真正更改格式。
\b
答案 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));
}