我已经开发了这三个类:
查找区域
package myapp;
public class FindArea {
public static void main(String[] args) {
Figure f = new Figure(10, 10);
Rectangle r = new Rectangle(4, 4);
Triangle t = new Triangle(4,8);
Figure figref;
figref = r;
System.out.println("Area is: " + r.area());
System.out.println(figref.area());
System.out.println(t.area());
System.out.println("Area is: " + f.area());
}
}
长方形
package myapp;
public class Rectangle extends Figure {
Rectangle(double a, double b) {
super(a, b);
}
double area() {
System.out.println("Area of Rectangle is:");
return width*length;
}
}
三角形
package myapp;
public class Triangle extends Figure {
Triangle(double a, double b) {
super(a,b);
}
double area() {
System.out.println("Area of Triangle is: ");
return (width/2)*length;
}
}
数字
package myapp;
public class Figure {
double width;
double length;
Figure(double dimL, double dimW) {
width = dimW;
length = dimL;
}
double area () {
System.out.println("Unknown shape. Area cannot be defined.");
return 0;
}
}
我希望FindArea的输出显示以下内容:
Area is: Area of Rectangle is:
16.0
Area of Rectangle is:
16.0
Area of Triangle is:
16.0
Unknown shape. Area cannot be defined.
Area is: 0.0
但是,显示的结果如下:
Area of Rectangle is:
16.0
Area of Triangle is:
16.0
Unknown shape. Area cannot be defined.
Area is: 0.0
为什么System.out.println("Area is: " + r.area());
忽略了该行?
该System.out.println("Area is: " + r.area());
语句不会被忽略。实际上,该程序的输出如下所示:
Area of Rectangle is:
Area is: 16.0
Area of Rectangle is:
16.0
Area of Triangle is:
16.0
Unknown shape. Area cannot be defined.
Area is: 0.0
这样您就可以看到Area is:
打印正确。
该语句System.out.println("Area is: " + r.area());
执行以下操作:
r.area()
首先被调用。Area of Rectangle is:
首先显示System.out.println("Area of Rectangle is:")
width * length
在这种情况下,将返回返回值16.0
。这是第一个println
按如下方式打印的:Area is: 16.0
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句