问题描述
interfacePet{//定义宠物接口publicStringgetName();publicStringgetColor();publicintgetAge();}classCatimplementsPet{//猫是宠物,实现接口privateStringname;//宠物名字privateStringcolor;//宠物颜色privateintage;//宠物年龄publicCat(Stringname,Stringcolor,intage){this.setName(name);this.setColor(color);this.setAge(age);}publicvoidsetName(Stringname){this.name=name;}publicvoidsetColor(Stringcolor){this.color=color;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnthis.name;}publicStringgetColor(){returnthis.color;}publicintgetAge(){returnthis.age;}};classDogimplementsPet{//狗是宠物,实现接口privateStringname;//宠物名字privateStringcolor;//宠物颜色privateintage;//宠物年龄publicDog(Stringname,Stringcolor,intage){this.setName(name);this.setColor(color);this.setAge(age);}publicvoidsetName(Stringname){this.name=name;}publicvoidsetColor(Stringcolor){this.color=color;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnthis.name;}publicStringgetColor(){returnthis.color;}publicintgetAge(){returnthis.age;}};classPetShop{//宠物商店privatePet[]pets;//保存一组宠物privateintfoot;publicPetShop(intlen){if(len>0){this.pets=newPet[len];//开辟数组大小}else{this.pets=newPet[1];//至少开辟一个空间}}publicbooleanadd(Petpet){//增加的是一个宠物if(this.foot<this.pets.length){this.pets[this.foot]=pet;//增加宠物this.foot++;returntrue;}else{returnfalse;}}publicPet[]search(StringkeyWord){//应该确定有多少个宠物符合要求Petp[]=null;intcount=0;//记录下会有多少个宠物符合查询结果for(inti=0;i<this.pets.length;i++){if(this.pets[i]!=null){//表示此位置有宠物if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getColor().indexOf(keyWord)!=-1){count++;//修改查找到的记录数}}}p=newPet[count];//开辟指定的大小空间intf=0;//增加元素的位置标记for(inti=0;i<this.pets.length;i++){if(this.pets[i]!=null){//表示此位置有宠物if(this.pets[i].getName().indexOf(keyWord)!=-1||this.pets[i].getColor().indexOf(keyWord)!=-1){p[f]=this.pets[i];f++;}}}returnp;}};publicclassPetShopDemo{publicstaticvoidmain(Stringargs[]){PetShopps=newPetShop(5);//五个宠物ps.add(newCat("白猫","白色的",2));//增加宠物,成功ps.add(newCat("黑猫","黑色的",3));//增加宠物,成功ps.add(newCat("花猫","花色的",3));//增加宠物,成功ps.add(newDog("拉步拉多","黄色的",3));//增加宠物,成功ps.add(newDog("金毛","金色的",2));//增加宠物,成功ps.add(newDog("黄狗","黑色的",2));//增加宠物,失败print(ps.search("黑"));}publicstaticvoidprint(Petp[]){for(inti=0;i<p.length;i++){if(p[i]!=null){System.out.println(p[i].getName()+","+p[i].getColor()+","+p[i].getAge());}}}};问下~怎么输出主方法里的全部数据需要添加什么
解决方案
解决方案二:
这代码看着有点别扭,需要仔细认真看
解决方案三:
全部数据什么意思
解决方案四:
啥叫主方法里的全部数据?猜测你是想输出全部带“黑”关键字的Pet,你主方法里第二条和最后一条添加的Pet记录都有“黑”publicstaticvoidmain(Stringargs[]){PetShopps=newPetShop(5);//五个宠物ps.add(newCat("白猫","白色的",2));//增加宠物,成功ps.add(newCat("黑猫","黑色的",3));//增加宠物,成功ps.add(newCat("花猫","花色的",3));//增加宠物,成功ps.add(newDog("拉步拉多","黄色的",3));//增加宠物,成功ps.add(newDog("金毛","金色的",2));//增加宠物,成功ps.add(newDog("黄狗","黑色的",2));//增加宠物,失败print(ps.search("黑"));}
但是你的PetShop大小是5啊,最后一个没加进去,是这意思么
解决方案五:
pet[]类型是私有的,在print方法里面不可见,参数怎么传进去