编写一个包含若干个属性的类A,
要求在A中定义一个可以得到A的拷贝方法,
编写一个能够比较A类对象,其值是否相等的方法。这个是我的思路:
class A{
String name; int age;
public A(String n,int a){ this.name=n; this.age=a;}
public A copy()
{...新建一个返回对象,其属性的值等于this的对应属性的值....}
public boolean compare(A v)
{.....比较v中每一个‘属性’的值是否等于this对应的属性的值,都相等返回true,否则返回false....}
}
A x=new A(“QQ”,10); //x代表name="QQ" age=10的A类对象。
A y=x.copy(); //y代表x的拷贝,这个拷贝的对象其name="QQ",age=10。但x和y不是同一个对象。
boolean z=x.compare(y); //z为true,因为x和y的name值及其age值都相等。
有知道方法的吧友请帮帮忙做下好吗?这个关系到我的期末考试成绩,谢谢!
要求在A中定义一个可以得到A的拷贝方法,
编写一个能够比较A类对象,其值是否相等的方法。这个是我的思路:
class A{
String name; int age;
public A(String n,int a){ this.name=n; this.age=a;}
public A copy()
{...新建一个返回对象,其属性的值等于this的对应属性的值....}
public boolean compare(A v)
{.....比较v中每一个‘属性’的值是否等于this对应的属性的值,都相等返回true,否则返回false....}
}
A x=new A(“QQ”,10); //x代表name="QQ" age=10的A类对象。
A y=x.copy(); //y代表x的拷贝,这个拷贝的对象其name="QQ",age=10。但x和y不是同一个对象。
boolean z=x.compare(y); //z为true,因为x和y的name值及其age值都相等。
有知道方法的吧友请帮帮忙做下好吗?这个关系到我的期末考试成绩,谢谢!
楼主【zhuqiang1268】截止到2008-06-26 00:43:51的历史汇总数据(不包括此帖):
发帖数:1 发帖分:50
结贴数:0 结贴分:0
未结数:1 未结分:50
结贴率:0.00 % 结分率:0.00 %
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
equals被覆盖了,注意也要覆盖 hashCode()
3楼的话好像在台湾某人书里看过 有道理
import java.util.Date;
public class Employee implements Cloneable
{
private Date hireday; private double salary; public Employee(Date h, double s)
{
hireday = h;
salary = s;
} @Override
public boolean equals(Object o)
{
Employee e = (Employee) o;
return this.getHireday().equals(e.getHireday())
&& this.salary == e.getSalary();
}
public Date getHireday()
{
return (Date) (hireday.clone());
} public double getSalary()
{
return salary;
} public Employee clone() throws CloneNotSupportedException
{
Employee cloned = (Employee) super.clone();
cloned.hireday = (Date) hireday.clone();
return cloned;
}
}
public int hashCode()
{
return 7 * this.hireday.hashCode() + 11 * (int) Math.round(this.salary);
}