阅读以下说明和Java源程序,将应填入(n)处的字句写在答题纸的对应栏内。 说明 以下程序的功能是计算三角形、矩形和正方形的面积并输出。 程序由5个类组成:AreaTest是主类,类Triangle、Rectangle和Square分别表示三角

admin2007-03-15  47

问题 阅读以下说明和Java源程序,将应填入(n)处的字句写在答题纸的对应栏内。
说明
   以下程序的功能是计算三角形、矩形和正方形的面积并输出。
   程序由5个类组成:AreaTest是主类,类Triangle、Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。
程序
   public class AreaTest{
     public static void main(String args[]){
       Figure[]figures={
          new Triangle(2,3,3),new Rectangle(5,8),  new Square(5)
       };
       for(int i=0;i<figures.1ength;i++){
           System.out.println(figures+"area="+figures.getArea());
       }
     }
   }
   public abstract class Figure{
      public abstract double  SetAJea();
public class Rectangle extends   (1)   {
   double height;
   double  width;
   public Rectangle(double height,double width){
        this.height=height;
        this.width=width;
  }
   public String toString(){
        return "Rectangle:height="+height+",width="+width+":";
}
public double getArea() { return   (2);
} } public class Square extends   (3)   {
   public Square(double width) {
          (4);
  }
   public String toString() {
        return "Square:width="+width+":";
  } } public class Triangle extends   (5). {
double la;
double lb;
double lc;
public Triangle(double la,double lb,double lc) {
    this.la=la;   this.lb=lb;    this.lc=lc;
public String toString(){
    return "Triangle: sides="+la+","+lb+","+lc+":";
public double getArea() {
     double s=(la+lb+lc)/2.0;
    return Math.sqrt(s*(s-la)*(s-lb)*(s•1c));
   }
   }

选项

答案(1)Figure (2)height*width (3)Rectangle (4)super(width,width) (5)FiguTe

解析 本题以Java语言为载体,考查面向对象程序设计中的三个重要机制——继承、抽象类和动态绑定的应用。本题所解决的问题与试题6一样,有关的详细描述可参见试题6的分析。
   在Java语言中通过在类中定义抽象方法来创建一个抽象类,或者直接将一个类声明为抽象类。
   由于继承关系已经确定,所以第(1)、(3)、(5)空已经确定,分别为Figure、Rectangle和Figure。第(2)空应填height*widthn
   Java中有一个特殊的函数super,用于在派生类中调用其基类的构造函数。利用 super,我们可以借助Rectangle的带有2个参数的构造函数将正方形的边长width传递到Rectangle的height和width中,所以第(4)空应填super(width,width)。
转载请注明原文地址:https://kaotiyun.com/show/SzjZ777K
0

最新回复(0)