五、Object类里面最常用的两个方法toString()和equals()

所有的类都默认继承了Object类,但是如果是自己定义的类,建议重写里面的toString方法,不重写的话,打印的是类名+@+哈西码。String类自身重写了tostring
(Object类)

public class Helloworld1 {
 public static void main(String args[]) {
  Animal c = new Animal("jacky",20);
    System.out.println(c);
  }
 }
 class Animal {
  String name;
  int age = 10;
  public Animal(String name,int age) {
     this.name = name;
     this.age = age;
     }
     public String toString() {
      return "name:"+name+";age:"+age;
      }
    }
....................................................................................................................................
==比较的是栈里面的内容,比较堆区的对象用equals(),并且当类是自己定义的时,equals()必须重写,重新给他比较的方法。
当equals方法重写后还要重写hashCode()方法,指定相同的对象必须具有相同的哈西码。     (Object类)

public class Helloworld1 {
 public static void main(String args[]) {
  Animal c1 = new Animal("jacky",20);
  Animal c2 = new Animal("jacky",19);
    System.out.println(c1.equals(c2));
  }
 }
 class Animal {
  String name;
  int age;
  public Animal(String name,int age) {
     this.name = name;
     this.age = age;
     }
     public boolean equals(Object obj) {
      Animal p = (Animal)obj;
      if(name == p.name && age == p.age) {
       return true;
      }else {
       return false;
       }
      }
      public int hashCode() {
       return name.hashCode();
       }
    }

如果类不是自己定义的,就不用重写equals了
public class Helloworld1 {
 public static void main(String args[]) {
  String c1 = new String("jacky");
  String c2 = new String("jacky");
    System.out.println(c1.equals(c2));
  }
 }

posted @ 2012-07-17 23:22  建志  阅读(177)  评论(0)    收藏  举报