Equals

来源:互联网 发布:双11淘宝所有商品都打折么 编辑:程序博客网 时间:2024/05/14 03:54

/*string类已经重写了Object中的equals方法
例子:
--假设str1和str2都是String对象
--str1.equals(str2);是用来比较str1变量本身所占内存的值所指向的对象和str2变量本身所占内存的值所指向的对象的内容是否相等,如果相等则返回true,否则返回false
String类的equals方法是用来判断两个对象的内容是否相等。Object类的equals方法是用来判断两个对象是否是同一个对象。
一定要注意==与equals的区别

*/


class A

{
public int i;
public A(int i)
{
this.i = i;
}
}
public class TestStringEquals
{
public static void main(String[] args)
{
A aa1 = new A(2);
A aa2 = new A(2);
System.out.println(aa1.equals(aa2));//判断aa1与aa2是否相等。为bool类型
System.out.println(aa1);//输出对象名和地址
System.out.println(aa2);
}

}

------------------------------------------------------------------------

class A
{
public int i;
public A(int i)
{
this.i = i;
}
public boolean equals(Object obj)
{
A aa = (A)obj;
if(this.i == aa.i)//父类的引用不能调用子类特有的东西obj.i错误
return true;
else
return false;
}
}
public class TestStringEquals2
{
public static void main(String[] args)
{
A aa1 = new A(2);
A aa2 = new A(2);
System.out.println(aa1.equals(aa2));//判断aa1与aa2是否相等。为bool类型

}
}

-----------------------------------------------------------------------------------------------------

/*

 测试String类的equals方法的使用

 ==的用法

 常量字符串的用法

*/

public class TestString

{

 public static void main(String[] args)

 {

  String str1 = new String("china");

  String str2 = new String("china");

  System.out.println(str1.equals(str2));//用来判断指向的内容//true

  if(str1 == str2)//判断str1和str2自身的内容是否相等

  System.out.println("str1 == str2");

  else

  System.out.println("str1 != str2");

  String str3 = "china";

  String str4 = "china";

  if(str3 == str4)

  System.out.println("str3 == str4");

  else

  System.out.println("str3 != str4");

 

 }

}