java编程思想-根据类型信息向容器随机创建对象.doc_第1页
java编程思想-根据类型信息向容器随机创建对象.doc_第2页
java编程思想-根据类型信息向容器随机创建对象.doc_第3页
java编程思想-根据类型信息向容器随机创建对象.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

import java.util.*;/(用来随机创建的)抽象基类/PetCreator.java abstract class PetCreator private Random rand=new Random(47); public abstract ListClasstypes(); public Pet randomPet() int n=rand.nextInt(types().size(); /随机范围=types容器的大小 try return types().get(n).newInstance(); catch(InstantiationException e) throw new RuntimeException(e); catch(IllegalAccessException e) throw new RuntimeException(e); public Pet createArray(int size) Petresult=new Petsize; for(int i=0;isize;i+) resulti=randomPet();/ 将随机生成的对象转型到Pet数组引用 return result; public ArrayListarrayList(int size) ArrayListresult=new ArrayList(); Collections.addAll(result, createArray(size); System.out.println(已填加+result.size()+个种类); /根据Pet数组引用 装入容器 return result; /PetCreator 的派生类/ForNameCreator.javaclass ForNameCreator extends PetCreator private static ListClasstypes= new ArrayListClass(); private static StringtypesNames= typeinfo.pets.Mutt, typeinfo.pets.Pug, typeinfo.pets.EgyptianMau, typeinfo.pets.Manx, typeinfo.pets.Cymric, typeinfo.pets.Rat, typeinfo.pets.Mouse, typeinfo.pets.Hamster, ; private static void Loader() try for(String name:typesNames) types.add(Class)Class.forName(name); catch(ClassNotFoundException e) System.out.println(创建对象的Class类时出现错误); throw new RuntimeException(e); static System.out.println(开始向types容器输入各类Class类型信息); Loader();public ListClasstypes()return types;/返回对容器(类型信息类)的引用 typespublic static void main(String arges)new ForNameCreator();/随机创建.javaclass 随机创建 public static void countPets(PetCreator creator) /向上转型为抽象基类的引用 creator.arrayList(20);/调用基类中arrayList函数 /开始真的随机创建20个宠物对象 并放入容器中 public static void main(String arges) /一切从这里开始 countPets(new ForNameCreator(); /创建派生类对象 调用本类静态函数 /*以下的模块框架是上面的材料*/5层类继承的基类 第一层/Individual.javaclass Individual public Individual(String name) =name; protected Individual() String name;/第 2层/Person.javaclass Person extends Individual public Person(String name)super(name); public Person()super();/第 2层 最后大部分都是围绕这个类/Pet.javaclass Pet extends Individual public Pet(String name)super(name); public Pet()super();/第 3层/Rodent.javaclass Rodent extends Pet public Rodent(String name)super(name); public Rodent()super();/第 4层/Hamster.javaclass Hamster extends Rodent public Hamster(String name)super(name); public Hamster()super();/第 4层/Mouse.javaclass Mouse extends Rodent public Mouse(String name)super(name); public Mouse()super();/第 4层/Rat.javaclass Rat extends Rodent public Rat(String name)super(name); public Rat()super();/第 3层/Dog.javaclass Dog extends Pet public Dog(String name)super(name); public Dog()super();/第 4层/Pug.javaclass Pug extends Dog public Pug(String name)super(name); public Pug()super();/第 4层/Mutt.javaclass Mutt extends Dog public Mutt(String name)super(name); public Mutt()super();/第 3层/Cat.javaclass Cat extends Pet public Cat(String name)super(name); public Cat()super();/第 4层/EgyptianMau .javaclass EgyptianMau extends Cat public EgyptianMau(String name)super(name); public EgyptianMau()super();/第 4层/Manx.javaclass Manx extends Cat public Manx(String name)super(name); public Manx()super();/第 5层/C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论