首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
以下Java代码实现一个简单客户关系管理系统(CRM)中通过工厂(CustomerFactory)对象来创建客户(Customer)对象的功能。客户分为创建成功的客户(RealCustomer)和空客户(NullCustomer)。空客户对象是当不满足特定
admin
2018-04-19
36
问题
以下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://jikaoti.com/ti/MHW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在编辑Word2007文档时,若多次使用剪贴板移动文本内容,当操作结束时,剪贴板中的内容为__________。
双击某个非可执行程序的文件名将(24)。
计算机运行一段时间后性能一般会有所下降,为此需要用优化工具对系统进行优化。系统优化的工作不包括()。
据某地区统计,今年中小学生中肥胖学生约占10%,而且,肥胖学生人数正在以8%的速度增长。假设近年中小学生的总量变化不大,据此我们可以推算出,明年该地区中小学生中肥胖学生的比例约为(64)。
某咨询顾问公司派小强统计本市各品牌汽车的占有率,以下4种统计方法中,小强应采用______方法,使估算结果较为可信。
在Excel2010中,设单元格A1、A2、A3、A4中的值分别为20、3、16、20,若在单元格B1中输入函数“=PR0DUCT(ApA2)/MAX(A3,A4)”,按回车键后,则B1单元格中的值为(
在用户界面上鼠标操作的功能不包括___________。
某工厂信息处理技术员设计了如下统计表:该表设计中包含的问题以及改进方法是______。
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入对应栏中。[说明]在IE浏览器中输入yoyo电子邮局主页地址并回车后,网页的显示效果如下图所示。[网页中的元素说明]见下表。
传统意义上的计算机病毒具有哪些特征?实施数据库服务器的病毒防护时,主要需要保护哪些元素?
随机试题
上消化道是指()
某商业中心地上4层、地下1层,建筑高度为20m,耐火等级一级,每层层高均为5m,每层建筑面积均为10000m2,按有关国家工程建设消防技术标准配置了自动喷水灭火系统、火灾自动报警系统等消防设施及器材。某歌舞厅位于该商业中心的地下一层至地上四层,每
金融衍生工具的基本特征是()。Ⅰ.跨期性Ⅱ.杠杆性Ⅲ.联动性Ⅳ.高风险性
根据贷款用途的不同,()可以分为个人经营专项贷款和个人经营流动资金贷款。
2007年7月5日,甲授权乙以甲的名义将甲的一台笔记本电脑出售,价格不得低于8000元。乙谎称该电脑属于自己,以6000元的市场价将电脑卖给了不知情的丙并交付。根据合同法律制度的规定,下列说法中,不正确的有()。
行政处罚是指行政机关依法对违反行政管理秩序的公民、法人或其他组织给予制裁的行政行为。据此,下列属于行政处罚的是:
设总体X服从标准正态分布,(X1,X2,…,Xn)为总体的简单样本,则().
有以下程序:#include<stdio.h>main(){inti,j,k,a=5,b=6;i=(a==b)?++a:--b;j=a++;k=b;printf("%d,%d,%d\n",i,j,k);}程序的运行结果是()。
Everyoneofuslivesandworksonasmallpartoftheearth’ssurface,movesinasmallcircle,andoftheseacquaintanceskno
Weshowldn’tdothatdangerousexperiment______theteacheriswithus.
最新回复
(
0
)