在学习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 st2st1 not equlas st3st1 not equlas st4按我当时的目的是st1 equlas st3的,equlas方法我也是重写的,请高手指点一下为什么会是st1 not equlas st3,如何使得st1 equlas st3?我的JDK是1.5谢谢
{
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 st2st1 not equlas st3st1 not equlas st4按我当时的目的是st1 equlas st3的,equlas方法我也是重写的,请高手指点一下为什么会是st1 not equlas st3,如何使得st1 equlas st3?我的JDK是1.5谢谢
解决方案 »
- java树形图求助
- 哪位高手能帮小弟写一个正则式啊?谢谢啊
- IntBuffer类的一个问题
- 问一个很无聊的问题,为什么JDK里面Arrays类,基本类型用快速排序,而剩下的就用归并排序呢?
- 一个java编程题目,大家帮帮忙
- 如何实现在一个java的应用程序里复制一个Frame窗口中任意一个Container里的屏幕图象到一个JPanel上?
- JAVA最新和最趋势的编译器是什么?请高手指点!
- 杭电的1005题 Number Sequence 各位帮忙看看
- 急!!!设connection.setAutoCommit(false)时,总有异常抛出!!!
- java的唤醒等待机制问题
- 急急急:Java打印,设置打印纸大小
- JAVA访问pcom
public boolean equlas(Object obj)
if(st1.equals(st3))
你看下两个equal!!