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 ")));
}
}