我想使类不可变。任何人都可以提供一个在Java中创建一个不可变类的简单示例吗?如何创建不可变类
class Emp implements Comparable
{
String name,job;
int salary;
public Emp(String n,String j,int sal)
{
name=n;
job=j;
salary=sal;
}
public void display()
{
System.out.println(name+"\t"+job+"\t"+salary);
}
public boolean equals(Object o)
{
// use a shortcut comparison for slightly better performance; not really required
if (this == o)
{
return true;
}
// make sure o can be cast to this class
if (o == null || o.getClass() != getClass())
{
// cannot cast
return false;
}
// can now safely cast
Emp p=(Emp)o;
return this.name.equals(p.name)&&this.job.equals(p.job) &&this.salary==p.salary;
}
public int hashCode()
{
return name.hashCode()+job.hashCode()+salary;
}
public int compareTo(Object o)
{
Emp e=(Emp)o;
return this.name.compareTo(e.name);
//return this.job.compareTo(e.job);
// return this.salary-e.salary;
}
}
也许你应该读作[这篇文章的一个不可改变的对象(http://www.javapractices.com/topic/TopicAction.do?Id=29)来代替。 – 2012-04-12 17:52:34
只是不公开修饰符方法(即没有'set'方法)。 – twain249 2012-04-12 17:54:02