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

equals 问题..
小弟初学Java     碰到这样一个题目....硬是做不出
    练习使用equals()方法:创建一个名称为bird的类,类中包含一个String   类型的数据成员.为bird类定义两个构造函数:一个不带任何参数,在函数内将成员变量初始化为 "Parrot ",并输出一条消息;另一个带一个String类型的参数,用参数初始化成员变量,并输出一条消息.创建一个名为OverloadConstruct的类,在该类中定义main()方法,在main()方法中创建三个bird的对象.第一个和第三个对象不传递参数,第二个对象带一个参数,参数值为 "Dove ".
1.检查第一个和第三个对象是否相等.
2.检查第一个和第三个对象的实例变量值是否相等.
3.检查字符串Dove是否与第二个对象的实例变量值相等.
提示:按照要求创建一个类并创建构造函数.     使用==运算符检查对象是否相等.     使用equals()方法检查对象变量是否相等

------解决方案--------------------
public class Bird{

private String name= "Parrot ";
public Bird(){

}

public Bird(String name){

this.name=name;
}

public boolean equals(Object obj){

if(obj instanceof Bird){

if(getName()!=null){

return getName().equals(obj.getName());
}
else if(obj.getName()==null){

return true;
}
return false;
}
return false;
}
public String getName(){

return name;
}
}
------解决方案--------------------
有的地方写错了啊
不好意思,一时着急了

class Bird{

String name=null;
public Bird(){
name=new String( "Parrot ");
System.out.println( "###### ");
}

public Bird(String name){
this.name=name;
System.out.println( "###### ");
}
}
public class OverloadConstruct{
public static void main(){
Brid one=new Brid();
Brid two=new Brid( "Dove ");
Brid three=new Brid();
System.out.println( "检查第一个和第三个对象是否相等: "+(one==three));
System.out.println( "检查第一个和第三个对象的实例变量值是否相等: "+((one.name).equals

(three.name)));
System.out.println( "检查字符串Dove是否与第二个对象的实例变量值相等: "+

((two.name).equals( "Dove ")));
}
}