首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
admin
2018-04-19
63
问题
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条件时创建或获取的对象。类间关系如图5.1所示。
[Java代码】
abstract class Customer{
protected String name;
(1)__________boolean isNil();
(2)__________String getName();
}
class Realcustomer(3)__________Customer {
public RealCustomer(String name){this.name=name; )
public String getName(){ return name; )
public boolean isNil(){ return false; )
}
class NullCustomer(4) __________Customer{
public String getName(){ return”Not Available in Customer Database”; )
public boolean isNil(){return true; )
}
class CustomerFactory {
public String[]names={“Rob”,”Joe”,”Julie”);
public Customer getCustomer(String name){
for(int i=0;i
if(names
.(5)__________}{
return new RealCustomer(name);
}
}
return (6)__________;
}
}
public class CRM{
publiC Void getCustomer(){
customerFactory(7)__________;
Customer customerl =cf.getCustomer("Rob");
Customer customer2 =cf.getCustomer("Bob");
Customer customer3 =cf.getCustomer("Julie");
Customer CUStomer4 =cf.getCustomer("Laura");
System.out.println("Customers");
System.out.println(customerl.getName());
System.out.println(customer2.getName());
System.out.println(customer3.getName());
System.out.println(customer4.getName());
}
public static void main(String[]args){
CRM crm=new CRM();
crm.getCustomer();
}
}
/*程序输出为:
CuStomers
Rob
Not Available in CuStomer Database
Julie
Not Available in CuStomer Database
*/
选项
答案
(1)public abstract (2)public abstract (3)extends (4)extends (5)equals(name)或其等价形式 (6)new NullCustomer() (7)cf=new CustomerFactory()
解析
本题考查用Java语言进行程序设计的能力,涉及类、对象、方法的定义和使用。要求考生根据给出的案例和代码说明,认真阅读并理清程序思路,然后完成题目。题目所给代码清晰,易于理清思路。
先考查题目说明,实现一个简单的客户关系管理系统(CRM),其中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定条件时创建或获取的对象。根据说明进行设计,题目说明中图5.1的类图给出了类CRM、CustomerFactory、Customer、RealCustomer以及NullCustomer及其之间的关系。CRM使用CustomerFactory,CustomerFactory作为创建Customer的工厂类,负责具体类型Customer的创建,即Customer的子类RealCustomer和NullCustomer的创建。
Customer定义为抽象类,定义一个protected String name、两个抽象方法,方法由子类实现。抽象方法的定义采用关键字abstract修饰,且只有方法的声明,而没有方法实现,即: public abstract boolean isNil();
public abstract String getName();
抽象类不可以直接创建对象,需要创建具体子类RealCustomer和NullCustomer的对象。
子类继承抽象父类,并实现所有抽象父类的方法,才能创建对象,即:
class RealCustomer extends Customer{…)
class NuliCustomer extends Customer{…)
在RealCustomer的构造器中,对象的属性与构造器参数用this关键字加以区分。即:
this.name=name;
CustomerFactory中的方法getCustomer()接收参数为所要创建的客户名称,判断已有名称(字符串数组names)中是否存在所接受的客户名称name,此处对字符串数组names中的每个名称与所接受客户名称(name)采用equals方法进行字符串判等,一旦相等,则创建并返回以name为客户名称的RealCustomer对象,否则返回NullCustomer对象。即:
for(int i=0;i
if (names
.equals(name)){
return new RealCustomer(name);
}
}
return new NuliCustomer();
CRM中定义一个getCustomer()方法,该方法通过使用CustomerFactory中的方法getCustomer()来创建Customer对象。其中采用new关键字创建CustomerFactory对象,即:
CustomerFactory cf=new CustomerFactory();
然后调用cf所引用对象中的getCustomer()方法,创建客户名称为Rob、Bob、Julie和Laura的四个对象,然后打印客户名称进行测试。以客户名称Rob和Bob为例,即:
Customer customerl =cf.getCustomer("Rob");
Customer customer2=cf.getCustomer"Bob");
System.out.println(customerl.getName());
System.out.println(customer2.getName());
因为names中有Rob而无Bob,所以对应的输出结果为:
Rob
Not AVailable in Customer Database
整个系统的入口main()方法定义在CRM中,创建CRM对象,并调用getCustomer()创建客户。
综上所述,空(1)和空(2)需要标识抽象方法,并且在子类中方法均为public,所以为public abstract;空(3)和空(4)需要表示RealCustomer和NullCustomer继承抽象类Customer,即extends;空(5)处为采用equals进行字符串判等,即equals(name):空(6)处为客户名称不存在时返回新创建的NullCustomer对象,即new NullCustomer():空(7)处为采用new关键字调用CustomerFactory的缺省构造器来创建对象,通过上下文判断对象引用名称为cf,即cf=new CustomerFactory()。
转载请注明原文地址:https://kaotiyun.com/show/K9jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
(1)是固化在主板ROM内的程序,为计算机提供最底层、最直接的硬件访问和控制。
在PowerPoint中,执行插入新幻灯片的操作后,被插入的幻灯片将出现在(53)。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
对同一事物进行多次测量所得的结果可能不一致,这是幽测量误差所致。利用______可使误差基本抵消。
在Word编辑状态下,移动鼠标至某段左侧,当鼠标光标变成箭头时连击左键3下,结果会选中文档的(45)。
解决网络安全问题的技术分为主动防御保护技术和被动防御保护技术两大类,__________属于被动防御保护技术。
数据类型有多种,可以归纳为两大类:字符型数据(不具计算能力)和数值型数据(可直接参与算术运算)。以下数据类型中,________属于数值型数据。
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明某公司内部有一个采用TCP/IP作为传输协议的100BASE-TX局域网,包括1台服务器和20台客户机,通过一台16端口的交换机与一台8端口共享集线器级连,其网络结构如图11所
框架在网页布局中主要起什么作用?主页中定义了几个框架,分别显示哪个文档?假设连接的数据记录集当前指向的记录如下:写出以下ASP代码经过IIS服务器解释后的结果。<tdalign-"center"width="20%"><ahref
阅读以下说明,回答问题1至问题5,将解答填入对应栏内。[说明]某大学要拟建一个小型局域网,如图10-5所示,PCI、PC3、PC5的IP地址分别为10.244.80.2,10.244.80.3,10.244.80.4子网掩码是255.255
随机试题
“一切以时间、地点和条件为转移”表明事物的联系具有()
政体是指()。
纤维素性炎症的好发部位不包括
在我国,最具有代表性的商业银行中间业务创新是()。
A、高阶无穷小B、低阶无穷小C、等价无穷小C
为了在运行时能显示窗体左上角的控制框(系统菜单),必须______。
在窗体上画一个命令按钮,然后编写如下事件过程:PrivateSubCommand1_Click()Fori=1To4x=4Forj=1To3x=3Fork=1To2x=x+6NextkNextjNext
下面控件中,没有Caption属性的是()。
Ifthereisanyendeavorwhosefruitsshouldbefreelyavailable,thatendeavorissurelypubliclyfinancedscience.Morally,ta
HowMarketLeadersKeepTheirEdgeResearchfindsthattherearethreemethodswithwhichbigcompanieskeeptheiradvantage
最新回复
(
0
)