public class Rectangle int length; int wide; public Rectangleint length int wide thislength = length; thiswide = wide; public Rectangle 周长 public void perimeter int perimeter =
在Column类中,perimeter和area变量没有定义。这是因为这两个变量是在Rectangle类中定义的,而在Column类中没有直接访问这两个变量的权限。
解决这个问题可以有两种方法:
- 在
Column类中重新计算周长和面积,而不是直接访问Rectangle类中的变量。可以通过调用Rectangle类中的perimeter()和area()方法来获取这两个值。 - 将
perimeter和area变量定义为protected,这样子类可以直接访问这两个变量。在Rectangle类中将这两个变量的访问修饰符改为protected即可。
下面是第一种解决方法的修改代码示例:
public class Rectangle {
int length;
int wide;
public Rectangle(int length, int wide) {
this.length = length;
this.wide = wide;
}
public Rectangle() {}
//周长
public int perimeter() {
return (length+wide)*2;
}
//面积
public int area() {
return length*wide;
}
}
//四棱柱
public class Column extends Rectangle {
int height;
public Column(int length, int wide, int height) {
super(length, wide);
this.height = height;
}
public Column() {}
//表面积
public void surfaceArea() {
int surfaceArea = perimeter()*height + area()*2;
System.out.println("表面积是:"+surfaceArea);
}
//体积
public void volume() {
int volume = area()*height;
System.out.println("体积是:"+volume);
}
}
在Column类中,perimeter()方法和area()方法被修改为返回周长和面积的值,然后在计算表面积和体积时调用这两个方法获取相应的值
原文地址: https://www.cveoy.top/t/topic/hRXi 著作权归作者所有。请勿转载和采集!