免费智能真题库 > 历年试卷 > 程序员 > 2019年上半年 程序员 下午试卷 案例
第5题      
知识点   Java   支付系统   EDI   信用卡   类图

 
【说明】
现如今线下支付系统可以使用现金(Cash)、移动支付、银行卡(Card)(信用卡(CreditCard)和储蓄卡(DebitCard))等多种支付方式(PaymentMethod)对物品(Item)账单(Bill)进行支付。图5-1是某支付系统的简略类图

Java代码】
import java.util.ArrayList;
import java.util.List;
interface PaymentMethod{
public(1);
}
//Cash、DebitCard和Item实现略,Item中getPrice()获取当前物品对象的价格
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();
}
}

 
问题:5.1   填写(n)处的字句。
 
 
 



   知识点讲解    
   · Java    · 支付系统    · EDI    · 信用卡    · 类图
 
       Java
        Java语言起源于Oak语言,Oak语言被设计成能运行在设备的嵌入式芯片上。
        Java编译成伪代码,这需要一个虚拟机来对其进行解释,Java的虚拟机在几乎每一种平台上都可以运行。这实质上使得开发是与机器独立无关的,并且提供了通用的可移植性。
        Java把类的概念和接口的概念区分开来,并试图通过只允许接口的多继承来克服多继承的危险。
        Java的异常处理机制与C++的try/throw/catch相类似,但更加严密。在Java中,通过声明轻型线程来处理并发性,这些线程通过副作用和同步协议进行通信。
        Java Beans是组件,即类及其所需资源的集合,它们主要被设计用来提供定制的GUI小配件。
        Java中关于面向对象概念的术语有对象、类、方法、实例变量、消息、子类和继承。
 
       支付系统
        通常先由被授权的项目团队成员证明卖方的工作合格,再通过买方的应付账款系统向卖方付款,所有支付都必须严格按照合同条款进行并加以记录。
 
       EDI
        信息技术标准化使“无纸贸易”即通过计算机进行电子数据交换(EDI)成为国际贸易发展的必然趋势,自从1990年,国际商会修订发布的《国际贸易术语解释通则》规定:“如买卖双方约定使用电子通讯,合同规定的单证可以由相等的电子单证所代替”后,各国先后把贸易单证格式标准化,实行计算机联网,用半电子单证取代传统的纸介质单据,实现不用纸,不出门而挣天下钱的“无纸贸易”。
 
       信用卡
        早期信用卡业务都是利用手工方式进行处理的。伴随计算机等先进技术的逐渐成熟,信用卡业务经过几十年的发展,基本上实现了电子化。信用卡的各项用途和基本功能,是由发卡银行根据社会需要和银行内部承受能力赋予的。信用卡具有下列四项基本功能:
               转账结算功能
               顾客凭信用卡在指定的商场、饭店购物消费后,所需支付的款项,可以用信用卡签单方式办理支付,这是信用卡最主要的功能。它为社会提供广泛的结算服务,方便持卡人和商家的购销活动,免于支付现金。
               储蓄功能
               凭信用卡可在同城或异地发卡银行指定的储蓄所办理存取款业务。用信用卡办理存款和取款手续比使用储蓄存折方便,不受存款地点和存款储蓄所的限制,可在开办信用卡业务的城市通存通取,并且凭信用卡支取现金。个人领用信用卡开立存款账户,发卡银行按照同期活期储蓄利率计付利息。
               汇兑功能
               当持卡人外出旅游、办事,需在外地支取现金时,可在发卡银行办理存款手续,然后凭卡在汇入地银行办理取款手续。在我国,异地支取现金的手续费比照邮政银行,按取款金额的1%收取;异地存入现金的手续费比照中国人民银行结算办法有关汇兑收费的规定,千元以下的按1%收取,千元以上的收费10元,同城范围内存取现金免收手续费。
               透支功能
               这是信用卡最本质的特点。持卡人凭借信用卡可从发卡人处获得一定的信用,也就是说,持卡人可从发卡人处获取一定额度的贷款或一定的延期付款期限,信用卡这一特点,使其与借记卡区别开来。
 
       类图
        类图(class diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
        类图中通常包括下述内容:类;接口;协作;依赖、泛化和关联关系,如下图所示。
        
        UML类图
        类图中也可以包含注解和约束。类图还可以含有包或子系统,二者都用于把模型元素聚集成更大的组块。
        类图用于对系统的静态设计视图建模。这种视图主要支持系统的功能需求,即系统要提供给最终用户的服务。当对系统的静态设计视图建模时,通常以下述三种方式之一使用类图。
        (1)对系统的词汇建模。
        对系统的词汇建模涉及做出这样的决定:哪些抽象是考虑中的系统的一部分,哪些抽象处于系统边界之外。用类图详细描述这些抽象和它们的职责。
        (2)对简单的协作建模。
        协作是一些共同工作的类、接口和其他元素的群体,该群体提供的一些合作行为强于所有这些元素的行为之和。例如当对分布式系统的事务语义建模时,不能仅仅盯着一个单独的类来推断要发生什么,而要有相互协作的一组类来实现这些语义。用类图对这组类以及它们之间的关系进行可视化和详述。
        (3)对逻辑数据库模式建模。
        将模式看作为数据库的概念设计的蓝图。在很多领域中,要在关系数据库或面向对象数据库中存储永久信息。可以用类图对这些数据库的模式建模。


 题号导航      2019年上半年 程序员 下午试卷 案例   本试卷我的完整做题情况 
1 /
2 /
3 /
4 /
5 /
6 /
 
↓第5题