阅读以下说明和Java程序,将应填入 (n) 处的字句写在对应栏内。 [说明] 下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。 [Java程序] class MainJava{ public static void main(String agr[]){ car sedan=new car(); sedan.initialize(24,20.0,4); System.out.println ("The sedan can travel" + (1) +"miles.\n"); System.out.println ("The sedan has" + (2) +"doors.\n"); } } class automobile{ protected int miles_per_gallon; //汽车每加仑行驶公里数 (3) double fuel_capacity; //油箱容积 public void initialize(int in_mpg,int in_fuel){ miles_per_galion=in_mpg; fuel_capacity=in_fuel; } public int get_mpg(){//提供一辆特定汽车每加仑公里数 return miles_per_gallon; } public double get_fuel(){//提供油箱容积 return fuel_capacity; } public double travel_distance(){//计算满油箱情况下的可行驶总公里数 return (4) ; } } class car (5) { private int Total_doors; public void initialize(int in_mpg,double in_fuel,int doors){ Total_doors=doors; miles_per_gallon=in_mpg; fuel_capacity=in_fuel; } public int doors(){ return Total_doors; } }
参考答案:sedan.travel_distance()
解析:(2) sedan.doors() (3) protected (4) fuel_capacity/miles_per_gallon (5) extends automobile 本题以Java语言为载体,考查面向对象程序设计中的关于类的几个概念,包括继承以及基类和派生类中函数的调用。 本题的功能是定义了一个automobile基类,并由其派生出了car类,主函数中定义了car的对象,并通过该对象调用了基类和派生类中的函数。 首先,通过整体阅读该题目,我们发现类car中的initialize函数直接对基类中的两个成员函数赋值,所以基类中的两个成员函数应该是被保护的,(3)处应填入“protected”。在基类中提供了这样一个成员函数travel_distance,它返回的是该交通工具的可能行驶距离,根据题目中给出的数据,(4)处应填入“fuel_capacity/miles_per_gallon”。 其次,本题还考查了派生类继承的方式,由于在主函数中直接通过car的对象调用了基类的公有函数,(5)处应填入“extends automobile”。 最后,通过定义car的对象sedan,分别调用了基类和派生类中的一个函数,(1)处应填入“sedan.travel_distance()”,(2)处应填入“sedan.doors()”。