(2013年上半年下午试题6)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不

admin2018-07-27  29

问题 (2013年上半年下午试题6)阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
    【说明】
    现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。
    现采用原型模式(Prototype)来实现上述要求,得到如图10.20所示的类图。

【Java代码】
Class WorkExperience _______(1)Cloneable{  //工作简历
    Private String workDate;
    Private String company;
    Public Object Clone(){
    _______(2);
    obj.workDate=this.workDate;
    obj.company=this.company;
    Return obj;
    }
}
Class Resume_______(3) Cloneable{  //简历
    Private String name;
    Private String sex;
    Private String age;
    Private WorkExperience work;
    Publlc ReSume(Strlng name){
    This.name=name; work=new WorkExperience();
    }
    Private Resume(WorkExperience work){
    ThiS.work=______(4);
      }
    Public void setPersona1 Info(String sex,String age){    /*代码省略*/  }
    Public void SetWorkExperience(String workDate,String company){/*代码省略*/  }
    PubliC Object Clone(){
    Resume obj=______(5);
    //其余代码省略
    Return obj;
    }
}
Ciass  WorkResume{
    Public Static void main(String[]  args){
    Resume a=new Resume(’’张三’’);
    a.SetPersonal Info(’’男’’,’’29’’);
    a.setworkExperience(’’1998~2000’’,’’XXX公司’’);
    Resume b=______(6);
    b.setworkExperience(’’2001~2006’’,’’YYY公司’’);
    }
}

选项

答案(1)implements (2)WorkExperience obj=new WorkExperience() (3)implements (4)(WorkExperence)work.Clone() (5)new Resume(this.work) (6)a.Clone()

解析 本题考查原型模式的概念及应用,原型模型是一种对象创建模型,用原型实体指定创建对象的种类,并且通过复制这些原型创建新的对象。原型模型允许一个对象再创建另一个可定制的对象,无须知道任何创建的细节。
    所有的Java类都继承白java.lang.Object,而Object类提供一个Clone()方法,可以将一个Java对象复制一份。因此在Java中可以直接使用Object提供的Clone()方法来实现对象的克隆。能够实现克隆的Java类必须实现一个标识接口Cloneable,表示这个Java类支持复制。
    题中WorkExperience类和Resume类需要实现Cloneable接口,故空(1)处和空(3)处应填入implements。WorkExperience中需要实现Clone方法,并将自身复制一份,由下面的代码可知空(2)处应填入WorkExperience obj=new WorkExperience()。Resume类中的私有构造方法实现WorkExperience的深复制,故空(4)处应填入(Work Experence)work.Clone(),而Resume类中的Clone方法实现自身的复制,故空(5)处应填入new Resume(this.work)。在main中实现Resume b对a的复制,故空(6)处应填入a.Clone()。
转载请注明原文地址:https://kaotiyun.com/show/BzxZ777K
0

相关试题推荐
最新回复(0)