public class TestEquals {
public static void mian(String[] args){
Cat c1 = new Cat(1, 2, 3);
Cat c2 = new Cat(1, 2, 3);
System.out.println(c1 == c2);
System.out.println(c1.equals(c2));

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}class Cat {
int color;
int height, weight;

public Cat(int Color, int height, int weight){
this.color = Color;
this.height = height;
this.weight = weight;
}

public boolean equals(Object obj){
if(obj == null) return false;
else {
if(obj instanceof Cat){
Cat c = (Cat)obj;
if(c.color == this.color && c.height == this.height && c.weight == this.height){
return true;
}
}
}
return false;
}

}

解决方案 »

  1.   

    改为:
    public static void main(String[] args){ 
      

  2.   


    public static void mian仔细些,你写成“mian”了。
      

  3.   


    c.color == this.color && c.height == this.height && c.weight == this.height判断条件也不对
      

  4.   

    public class TestEquals { 
    public static void main(String[] args){ //这行你原来是mian.
       Cat c1 = new Cat(1, 2, 3); 
       Cat c2 = new Cat(1, 2, 3); 
       System.out.println(c1 == c2); 
       System.out.println(c1.equals(c2)); 
       String s1 = new String("hello"); 
       String s2 = new String("hello"); 
       System.out.println(s1 == s2); 
       System.out.println(s1.equals(s2)); 
      } 
    } class Cat {
       int color; 
       int height, weight; 
       public Cat(int Color, int height, int weight){ 
           this.color = Color; 
           this.height = height; 
           this.weight = weight; 
       }   public boolean equals(Object obj){ 
         if(obj == null) return false; 
         else { 
         if(obj instanceof Cat){ 
            Cat c = (Cat)obj; 
            if(c.color == this.color && c.height == this.height && c.weight == this.weight){ //这行你原来有错
               return true; 
            } 
          } 
          } 
         return false; 
      } }