当前页面: 开发资料首页 → J2SE 专题 → [新手问题] 关于equals方法
[新手问题] 关于equals方法
摘要: [新手问题] 关于equals方法
在学习equals方法方法时我写了一段代码(如下)
class Student
{
private String name;
private int age;
public Student(String name,int age)
{
this.name=name;
this.age=age;
}
public boolean equlas(Object obj)
{
Student st=null;
if(obj instanceof Student)
{
st=(Student)obj;
if(st.name==name && st.age==age)
{
return true;
}
else
return false;
}
else
{
return false;
}
}
}
class Xxs extends Student
{
public Xxs(String name,int age)
{
super(name,age);
}
}
class Test
{
public static void main(String[] args)
{
Student st1=new Student("linan",20);
Student st2=new Student("caiheng",20);
Student st3=new Student("linan",20);
Xxs st4=new Xxs("linan",20);
if(st1.equals(st2))
{
System.out.println("st1 equlas st2");
}
else
{
System.out.println("st1 not equlas st2");
}
if(st1.equals(st3))
{
System.out.println("st1 equlas st3");
}
else
{
System.out.println("st1 not equlas st3");
}
if(st1.equals(st4))
{
System.out.println("st1 equlas st4");
}
else
{
System.out.println("st1 not equlas st4");
}
}
}
可是编译通过后执行却都是
st1 not equlas st2
st1 not equlas st3
st1 not equlas st4
按我当时的目的是st1 equlas st3的,equlas方法我也是重写的,请高手指点一下为什么会是st1 not equlas st3,如何使得st1 equlas st3?我的JDK是1.5
谢谢
public boolean equlas(Object obj)
if(st1.equals(st3))
你看下两个equal!!
method name is error! equals is correct!
我的天,谢谢了,真TM的