摘要:希賽網(wǎng)軟考頻道小編為大家整理了2019上半年軟考程序員下午真題第五部分,供大家參考。
5、閱讀以下說明和Java代碼,將應(yīng)填入(n)處的字句寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
現(xiàn)如今線下支付系統(tǒng)可以使用現(xiàn)金(Cash)、移動支付、銀行卡(Card)(信用卡 (CreditCard)和儲蓄卡(DebitCard))等多種支付方式(PaymentMethod)對物品(Item)賬單(Bill)進行支付。圖5-1是某支付系統(tǒng)的簡略類圖。
問題內(nèi)容:
【Java代碼】
Import java.util. ArrayList;
import java.util.List;
interface PaymentMethod {
public (1) ;
}
// Cash、DebitCard和Item實現(xiàn)略,Item中g(shù)etPrice( )獲取當前物品對象的價格
abstract class Card (2) {
private final String name, num;
public Card(String name, String num) {this.name = name; this.num = num; }
@Oveiride
public String toString ( ) {
return String.format(“%s card[name = %s, num = %s]”,this.getType (), name, num);
}
@Override
public void pay(int cents) {
System.out.println(“Payed " + cents + “ cents using “ + toString( ));
this.executeTransaction(cents);
}
protected abstract String getType( );
protected abstract void executeTransaction(int cents);
}
class CreditCard (3) {
public CreditCard(String name, String num) { (4) ; }
@Override
protected String getType( ) { return "CREDIT"; }
@Override
protected void executeTransaction(int cents) {
System.out.println(cents + " paid using Credit Card. "’);
}
}
class Bill {//包含所有購買商品的賬單
private List<Item> items = new ArrayList<>();
public void add(Item item) { items.add(item); }
public intgetTotalPrice( ){/*計算所有 item 的總價格,代碼略*/ }
public void pay(PaymentMethod paymentMethod){//用指定的支付方式完成支付
(5) (getTotalPrice( ));
}
}
public class PaymentSystem {
public void pay( ) {
Bill bill = new Bill( );
Item item1 = new Item("1234",10); Item item2 = new Item( "5678",40);
bill.add(item1); bill.add(item2); //將物品添加到賬單中
bill.pay(new CreditCard("LI SI", "98765432101")); //信用卡支付
}
public static void main(String[ ] args) {
(6) = new PaymentSystem( );
payment.pay( );
}
}
相關(guān)推薦:2019上半年程序員下午真題及答案
在線題庫:程序員歷年真題自測估分
軟考備考資料免費領(lǐng)取
去領(lǐng)取