错 在哪儿???怎么修改

来源:百度知道 编辑:UC知道 时间:2024/07/15 21:58:20
class MyKey{
private String name;
private int age;
public MyKey(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return new String(name+","+age);
}
public boolean equals(Object obj){
if(name.equals(obj.name) && age==obj.age)
return true;
else
return false;
}
public int hasCode(){
return name.hashCode() +age;
}
}

class MyKey{
private String name;
private int age;
public MyKey(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return new String(name+","+age);
}
public boolean equals(MyKey obj){ //这儿
if(name.equals(obj.name) && age==obj.age)
return true;
else
return false;
}
public int hasCode(){
return name.hashCode() +age;
}
}

obj.name obj.age
这个地方需要先用instanceOf判断一下object是不是MyKey类的实例,然后强制转型((MyKey)Object).name。。。。。。

把Object 强制转为MyKey类型 ((MyKey)Object).name 然后.属性

obj的对象的属性name和age一般都是私有的,感觉你的obj像是MyKey了,所以得到get方法,最好也有set方法,如下:
[note]
class MyKey {
private String name;
private int age;

public MyKey(String name, int age) {
this.name = name;
this.age = age;
}

public String toString() {
return new String(name + "," + age);
}