首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
admin
2018-04-19
68
问题
以下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
程序员下午应用技术考试
软考初级
相关试题推荐
______不属于企业信息系统存在的问题。
在PowerPoint2007中,为精确控制幻灯片的放映时间,可使用______功能。
在Word2007中要建立一个表格,方法是()。
某学校一个教师可以讲授多门课程,一门课程也可以由多个教师讲授,则教师与课程之间的关系类型为()。
Windows系统运行时,按功能键__________可调出帮助系统。
某家用监控摄像头广告所列的功能中,(15)有错误。
由多台计算机组成的一个系统,这些计算机之间可以通过通信来交换信息,互相之间无主次之分,它们共享系统资源,程序由系统中的全部或部分计算机协同执行,执行过程对用户透明。管理上述计算机系统的操作系统是_________。
资源记录文件位于/var/named目录下。这个目录是在以上的(1)文件中定义的。从备选选项中选择(6)~(10)处的解答。在问题4的named.abc.net文件中,出现了5种类型的记录。其中SOA是(6),NS是(7),MX是(8),A是
[说明]请根据网页显示的效果图,将HtML文本(n)处的解答填写在相应的解答栏内。[上图网页中的元素说明][HTML文档代码]<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML
网页留言效果如下图所示,网页文档如下,请参照表格给出的说明在下划线处填写正确的答案到答题纸对应的栏内。[上图网页中的元素说明] [HTML文本]<!DOCrYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
男,30岁。餐后突发右上腹及剑突下痛,放射到右肩及后背部,2小时后疼痛剧烈,伴恶心,并吐出所进食物,仍不缓解,急诊就医。数年“胃病”史及胆石症史,间有胆绞痛发作。查体:痛苦病容,体温37.2℃,呼吸28次/分,浅快,律齐。全腹胀,上腹肌紧张,压痛及反跳痛(
A.两性霉素BB.阿昔洛韦C.氟康唑D.利巴韦林E.灰黄霉素对DNA、RNA病毒均有抑制作用
患者,男,55岁,诊断为良性前列腺增生症,服用非那雄胺片治疗,最有可能发生与用药相关的不良反应是()。
患者,女性,52岁。风湿性心脏瓣膜病,二尖瓣狭窄10余年。3天前受凉后出现咳嗽,咳黄色黏痰,伴发热,伴胸闷、心悸、气短,上3层楼梯需中间休息5分钟,自服感冒药后未见改善,急诊以风湿性心脏瓣膜病、心力衰竭、肺部感染收入院。导致患者发生心力衰竭的主要诱因是
两种摩尔质量不同的理想气体,它们的压强、温度相同,体积不同,则它们的()。
工程咨询单位的()是从事市场中介服务的法律基础,是坚持客观、公正立场的前提条件,是赢得社会信任的重要因素。
设计交底是保证工程施工质量的重要环节,设计交底应由()主持。
按照《招标投标法》规定,下列关于开标的说法,正确的是()。
_______是衔接国内和国际市场交易的一种批发形式。
下列不属于治安行政管理工作内容的是()。
最新回复
(
0
)