将第六章的宠物商店代码中各个不同功能的类放在不同的包中定义,一定要严格遵循命名规范的要求。
package PetShop.Pet.Cat;
import PetShop.Pet.*;
public class Cat extends Pet{
private String name;
private String color;
private int age;
public Cat(String name,String color,int age){
this.name=name;
this.color=color;
this.age=age;
}
public String getName(){
return this.name;
}
public String getColor(){
return this.color;
}
public int getAge(){
return this.age;
}
}
package PetShop.Pet.Dog;
import PetShop.Pet.*;
public class Dog extends Pet{
private String name;
private String color;
private int age;
public Dog(String name,String color,int age){
this.name=name;
this.color=color;
this.age=age;
}
public String getName(){
return this.name;
}
public String getColor(){
return this.color;
}
public int getAge(){
return this.age;
}
}
package PetShop.Pet;
public abstract class Pet{
public abstract String getName();
public abstract String getColor();
public abstract int getAge();
}
package PetShop;
import PetShop.Pet.*;
public class PetShop{
private Pet[] pets;
private int foot;
public PetShop(int len){
if(len>0){
this.pets=new Pet[len];
}else{
this.pets=new Pet[1];
}
}
public boolean add(Pet pet){
if(this.foot<this.pets.length){
this.pets[this.foot]=pet;
this.foot++;
return true;
}else{
return false;
}
}
public Pet[] search(String keyWord){
Pet p[]=null;
int count=0;
for(int i=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=new Pet[count];
int f=0;
for(int i=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++;
}
}
}
return p;
}
}
package PetShop;
import PetShop.*;
import PetShop.Pet.*;
import PetShop.Pet.Dog.*;
import PetShop.Pet.Cat.*;
public class PackPetShop{
public static void main(String args[]){
PetShop ps = new PetShop(5) ; // 五个宠物
ps.add(new Cat("白猫","白色的",2)) ; // 增加宠物,成功
ps.add(new Cat("黑猫","黑色的",3)) ; // 增加宠物,成功
ps.add(new Cat("花猫","花色的",3)) ; // 增加宠物,成功
ps.add(new Dog("金毛","金色的",2)) ; // 增加宠物,成功
ps.add(new Dog("黄狗","黑色的",2)) ; // 增加宠物,失败
print(ps.search("黑")) ;
}
public static void print(Pet p[]){
for(int i=0;i<p.length;i++){
if(p[i]!=null){
System.out.println(p[i].getName() + "," + p[i].getColor()
+"," + p[i].getAge()) ;
}
}
}
}
浙公网安备 33010602011771号