转载于 :http://www.verejava.com/?id=16992811364048

/**知识点:关键字 instanceof题目:输出参加Oracle大会的人分类信息思路:1.抽象出类:会议厅(Hall),人种(Person){程序员(Programer),管理者(Manager)}2.找出类关系:2.1{程序员(Programer),管理者(Manager)}是人种(Person)分类2.2人种(Person)->会议厅(Hall)3.找出属性:3.1会议厅(Hall)(会议名称,容纳人数)3.2人种(Person)(姓名)4.找出方法:4.1要参加会议会议厅(Hall)登记参加会议的每个人信息register(Personp)4.2输出参加大会的人信息output()*/publicclassTestInstanceof{publicstaticvoidmain(String[]args){//Oracle说我要在Moscorecenter举办一年一度的大会,需要一个//容纳1000人的会厅//开一个能容量1000人的会厅Hallh=newHall(1000);//开始登记注册h.register(newProgramer("Joseph"));h.register(newProgramer("james"));h.register(newManager("Page"));h.register(newManager("Joe"));//打印输出h.output();}}classHall{privateStringname;//会议名称privatePerson[]persons;//登记册publicHall(intmaxSize){persons=newPerson[maxSize];}//登记每个参加会议的人信息//思路://1.循环检测如果没有超出容量,将该人添加到登记册//如果超出容量,提示已经没有注册名额,注册完毕publicvoidregister(PersonnewPerson){intflag=0;//检测是否注册完毕for(inti=0;i<persons.length;i++){if(persons[i]==null){persons[i]=newPerson;break;}flag++;}if(flag==persons.length){System.out.println("已经没有注册名额,注册完毕");}}//输出参加大会的人分类信息//思路://1.循环打印出每个已经参加登记人的信息//2.但是在循环打印的时候要判断到底打印的是程序员还是经理publicvoidoutput(){for(inti=0;i<persons.length;i++){//打印已经登记的人信息if(persons[i]!=null){if(persons[i]instanceofProgramer){System.out.println(persons[i].getName()+"属于程序员");}if(persons[i]instanceofManager){System.out.println(persons[i].getName()+"属于经理以上级别");}}}}}abstractclassPerson{protectedStringname;//姓名publicPerson(Stringname){this.name=name;}publicStringgetName(){returnthis.name;}}classProgramerextendsPerson{publicProgramer(Stringname){super(name);}}classManagerextendsPerson{publicManager(Stringname){super(name);}}

转载于 :http://www.verejava.com/?id=16992811364048