求大神解题啊!!!!!!!!!感谢了
import java.util.Date;
//重写equals()与hashCode()方法的实例,可以根据对象中真正包括的域成员来比较两个对象是否相等。
public class Cat
{
    private String name;
	private Date  birthday;
	public Cat() {
	}
	public void setName(String name) {this.name = name;}
	public String getName() {return name;}
	public void setBirthday (Date  birthday) {this.birthday  =  birthday;}
	public Date  getBirthday() {return birthday;}
	public boolean equals(Object other) {
		if(this == other)
			return true;
		if(!(other instanceof Cat))
			return false;
		final Cat cat = (Cat) other;
		if(!getName().equals(cat.getName()))
			return false;
		if(!getBirthday().equals(cat.getBirthday()))
			return false;
		return true;
	}
		public int hashCode() {
			int result = getName().hashCode();
			result = 29*result + getBirthday().hashCode();
			return result;
		}
怎么写一个main()方法来运行这个类
              
                  java?se?的类题
              
------解决方案--------------------public static void main(String[] args){
   Cat c = new Cat();
}
楼主没认真看书
------解决方案--------------------
楼主,你先得知道为什么要复写equal和hashcode,给你举个例子
 
public class Cat {
    
    public static void main(String[] args) {
        Date d = new Date(); 
        Cat bigC = new Cat("BigCat", d);
        Cat smallC = new Cat("BigCat", d);
        
        System.out.println(bigC == smallC);       // 1
        System.out.println(bigC.equals(smallC));  // 2
        
        Set<Cat> set = new HashSet<Cat>();        // 3
        set.add(bigC);
        set.add(smallC);
        System.out.println(set.size());
    }
这里三个部分:
1、==比较两个cat的地址,两个对象当然返回的false;
2、如果不覆盖equal的话,和==一样的效果,覆盖后,就可以自定义比较内容,这里是比较两个属性,所以返回true。
3、hashcode()是专门用来hash算法的,例如hashMap、hashSet等。此处用hashSet来举例,先会hash定位,定位后再比较equal,如果hashCode()不重写,相等的对象就不能定位在一块了,就会认为是两个不相等的对象。      楼主复写了hashCode后,两个相同的对象add入HashSet,size只有一个,证明两者hashCode相等且equal相等。
------解决方案--------------------