首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
admin
2018-04-19
89
问题
以下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
程序员下午应用技术考试
软考初级
相关试题推荐
PowerPoint可以通过插入(55)来完成统计、计算等功能。
评价信息系统时需要听取各有关方面的意见。在听取系统操作人员的意见时,主要讨论信息系统的______。
在Excel中,下列符号属于比较运算符的是(43)。
计算机运行一段时间后性能一般会有所下降,为此需要用优化工具对系统进行优化。系统优化的工作不包括()。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
以下关于操作系统中回收站的叙述,不正确的是____________。
在Word2007中要建立一个表格,方法是()。
内存用于存放计算机运行时的指令、程序、需处理的数据和运行结果。但是,存储在(2)中的内容是不能用指令修改的。
在网页中创建一个如下图所示的表单控件的HTML代码是(26)。
[说明]请根据网页显示的效果图,将HtML文本(n)处的解答填写在相应的解答栏内。[上图网页中的元素说明][HTML文档代码]<!DOCTYPEHTMLPUBLIC“-//W3C//DTDHTML
随机试题
肾病综合征首选()有明显浮肿可用()
最普遍采用的国内生产总值的机制方法是按______计算的。()
在建设阶段,开发商的主要任务转变方向不包括()。
( )是招标投标工作成果的最终体现。
下列关于地震设防城市的道路规划设计表述,错误的是()
以死亡为给付保险金条件的保险合同,保险人在事故发生后一般向受益人履行给付保险金的义务,但遇到下列哪些情形时,保险金将作为被保险人的遗产进行处理?( )Ⅰ.受益人为被保险人本身Ⅱ.没有指定受益人的Ⅲ.受益人先于被保险人死亡的,没有其他受益人的Ⅳ.受
企业常用的培训模式有()。
《幼儿园教师专业标准(试行)》的基本理念包括()。
阅读下列说明,回答问题,将解答填入对应栏内。【说明】A公司中标某客户数据中心建设项目,该项目涉及数据中心基础设施、网络、硬件、软件、信息安全建设等方面工作。经高层批准,任命小李担任项目经理。小李从相应的技术服务部门(网络服务部、硬件服务部、软件服务部、
开展E-mail营销的基础之一是拥有潜在用户的(41)。
最新回复
(
0
)