日期:2014-05-20  浏览次数:21150 次

数姐越界
package lxh;
interface Pet{
public String getName();
public int getAge();
public String getColor();
}
class Cat implements Pet{
private String name;
private int age;
private String color;
public Cat(String name,int age,String color){
this.setName(name);
this.setAge(age);
this.setColor(color);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}

}
class Dog implements Pet{
private String name;
private int age;
private String color;
public Dog(String name,int age,String color){
this.setName(name);
this.setAge(age);
this.setColor(color);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}

}
class Petshop{
private int floot;
private Pet[] pers;

public int getFloot() {
return floot;
}
public void setFloot(int floot) {
this.floot = floot;
}
public Pet[] getPers() {
return pers;
}
public void setPers(Pet[] pers) {
this.pers = pers;
}
public Petshop(int len){
if(len>0){
this.pers = new Pet[len];
}else{
this.pers = new Pet[1];
}
}
public boolean add(Pet p){
if(this.floot<pers.length){
pers[floot] = p;
this.floot++;
return true;
}else{
return false;
}
}
public Pet[] search(String keywork){
Pet[] p = null;
int count = 0;
for(int i=0;i<pers.length;i++){
if(pers[i]!=null){
if(pers[i].getName().indexOf(keywork)!=-1||pers[i].getColor().indexOf(keywork)!=-1){
count++;
}
}
}
p = new Pet[count];
int f = 0;
for(int i=0;i<pers.length;i++){
if(pers[i]!=null){
if(pers[i].getName().indexOf(keywork)!=0||pers[i].getColor().indexOf(keywork)!=-1){
p[f] = this.pers[i];
f++;
}
}
}
return p;
}
}
public class PetshopDemo {

public static void main(String[] args) {
Petshop pet = new Petshop(6);
pet.add(new Dog("旺财",11,"白"));
pet.add(new Dog("阿财",11,"金"));
pet.add(new Cat("小白",11,"白"));
pet.add(new Cat("小黑",11,"黑"));
pet.add(new Cat("黑白",11,"黑白"));
print(pet.search("旺"));
for(int i=0;i<pet.getPers().length;i++){
System.out.println(pet.getPers()[i].getName()+pet.getPers()[i].getAge()+pet.getPers()[i].getColor());
}

}
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].getAge()+p[i].getColor());
}
}
}
}
编译提示:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at lxh.Petshop.search(PetshopDemo.java:112)
at lxh.PetshopDemo.main(PetshopDemo.java:129)
请高手看下错哪里了?

------解决方案--------------------
if(pers[i].getName().indexOf(keywork)!=0||pers[i].getColor().indexOf(keywork)!=-1){

太不细心了