问题 问答题

【说明】 IC卡和200卡都是从电话卡派生的。下面的程序将电话卡定义为抽象类。其中 balance为双精度变量,代表电话卡中的余额;cardNumber是长整型变量,代表电话卡的卡号;password是整型变量,代表电话卡的密码;connectNumber是字符串变量,代表电话卡的接入号码;connected是布尔变量,代表电话是否接通。 performDial()实现各种电话接通后的扣除费用的操作。其中200卡每次通话扣除0.5元的通话费用和附加费用;IC卡每次通话扣除0.9元的通话费。TimeLeft()方法用于测试电话卡余额还可以拨打电话的次数。performConnection()用于电话接入操作,如果卡号和密码正确,则接通;否则,接不通。 【程序】 abstract class PhoneCard { doubte balace; (1) perfermDial(); double getBalance() { return balance; } double TimeLeft() { double current=balance; int times=0; do { (2) times++; }white(balance>=0); balance=current; return times-1; } } abstract class Number_PhoneCard extends PhoneCard { long cardNumber: int password; String connectNumber; Boolean connected; Boolean performConnection(long cn, int pw) { if(cn==cardNumber && (3) ) { connected=true; return true; } else return false;} } class IC Card (4) { boolean performDial() { if(balance>0.9) { balance-=0.9; return true; } else return false; } } class D200_Card (4) { static double additoryFee; static{ additoryFee=0.1; } boolean performDial() { if(balance>(0,5+additeryFee)) { (5) return true; } else return false; } }

答案

参考答案:

解析:(1)abstract Boolean (2)performDial(); (3)pw==password (4)extends Number_PhoneCard (5)balance-=0.5+additoryFee;

[分析]: 本题考查Java对抽象类的定义、继承及电话卡业务的实现。 在Java程序设计语言中,抽象类是指在类中定义了抽象成员函数的类,程序中把基类PhoneCard定义为抽象类,其中有一个成员变量和三个成员函数,但是已给出定义的两个函数都不是抽象成员函数。因此,第(1)空的作用是把成员函数performDial0定义为抽象成员函数,结合后面的程序我们可以知道,函数performDial()的返回类型是布尔型,因此,此空的答案为abstract Boolean。 第(2)空在函数TimeLeft()中,此函数用于测试电话卡余额还可以拨打电话的次数,要实现此功能应该知道每次电话接通后扣除的费用,函数performDial()能实现这个功能,此处应该是调用这个函数,因此,此空答案为performDial()。 第(3)空在函数performConnection()中,此函数用于电话接入操作,如果卡号和密码正确,则接通;否则,接不通。结合程序中代码,我们知道此空是要判断密码是否正确,而参数pw中存放的是密码,因此,此空答案为pw==password。 第(4)空是在派生类的定义时,对派生类继承关系的说明。电话卡的所有属性在抽象类Number_PhoneCard中都有了完整的定义,那么这两个电话卡的派生类应该继承 Number_PhoneCard抽象类,因此,此空答案为extends Number_PhoneCard。 第(5)空在D200_Card类的performDial()函数中,这个函数的作用是对200卡每次通话进行扣费操作。根据题目条件,200卡每次通话扣除0.5元,再结合程序中的内容,我们可以推导出第(5)空要完成的任务是费用扣除操作,因此,此空答案为 balance-=0.5+additoryFee。

不定项选择
多项选择题