java编程思想-根据类型信息向容器随机创建对象

java编程思想-根据类型信息向容器随机创建对象

ID:8977218

大小:42.50 KB

页数:4页

时间:2018-04-13

java编程思想-根据类型信息向容器随机创建对象_第1页
java编程思想-根据类型信息向容器随机创建对象_第2页
java编程思想-根据类型信息向容器随机创建对象_第3页
java编程思想-根据类型信息向容器随机创建对象_第4页
资源描述:

《java编程思想-根据类型信息向容器随机创建对象》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、importjava.util.*;//(用来随机创建的)抽象基类//PetCreator.javaabstractclassPetCreator{privateRandomrand=newRandom(47);publicabstractList>types();publicPetrandomPet(){intn=rand.nextInt(types().size());//随机范围<=types容器的大小try{returntypes().get(n).newInstance();}catch(Instanti

2、ationExceptione){thrownewRuntimeException(e);}catch(IllegalAccessExceptione){thrownewRuntimeException(e);}}publicPet[]createArray(intsize){Pet[]result=newPet[size];for(inti=0;iarrayList(intsi

3、ze){ArrayListresult=newArrayList();Collections.addAll(result,createArray(size));System.out.println("已填加"+result.size()+"个种类");//根据Pet[]数组引用装入容器returnresult;}}//PetCreator的派生类//ForNameCreator.javaclassForNameCreatorextendsPetCreator{privatestaticList>

4、types=newArrayList>();privatestaticString[]typesNames={"typeinfo.pets.Mutt","typeinfo.pets.Pug","typeinfo.pets.EgyptianMau","typeinfo.pets.Manx","typeinfo.pets.Cymric","typeinfo.pets.Rat","typeinfo.pets.Mouse","typeinfo.pets.Hamster",};privatestaticvoidLoader(

5、){try{for(Stringname:typesNames)types.add((Class)Class.forName(name));}catch(ClassNotFoundExceptione){System.out.println("创建对象的Class类时出现错误");thrownewRuntimeException(e);}}static{System.out.println("开始向types容器输入各类Class类型信息");Loader();}publicList>ty

6、pes(){returntypes;}//返回对容器(类型信息类)的引用typespublicstaticvoidmain(String[]arges){newForNameCreator();}}//随机创建.javaclass随机创建{publicstaticvoidcountPets(PetCreatorcreator)//向上转型为抽象基类的引用{creator.arrayList(20);//调用基类中arrayList函数//开始真的随机创建20个宠物对象并放入容器中}publicstaticvoidmain(String[]arges){

7、//一切从这里开始countPets(newForNameCreator());//创建派生类对象调用本类静态函数}}//***********************以下的模块框架是上面的材料********************************//5层类继承的基类第一层//Individual.javaclassIndividual{publicIndividual(Stringname){this.name=name;}protectedIndividual(){}Stringname;}//第2层//Person.javaclassP

8、ersonextendsIndividual{publicPerson(Stringname)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。