/*
String和String Buffer(在其保存)
类String中方法equals()--进行了重写和object类中的equal();
*/
class A
{
public int i;
public A(int i)
{
this.i=i;
}
public boolean equals(Object obj) //内容一样,内存不一样,返回true,重写(三重)
{ //obj为形参,指针,
A aa=(A)obj; //父类调用子类特有的成员。先写需要aa=bb(先父类指向子类对象);bb=(B)aa;
if(this.i==aa.i) //if(当前对象i和obj代表的i相等),obj指向了子类,obj.i属于子类中特有的成员,不能直接调用,需要强制转为本子类;
return true;
else
return false;
}
}
public class TestEquals
{
public static void main(String[] args)
{
A aa1=new A(2);
A aa2=new A(2);
System.out.println(aa1.equals(aa2));//比较的不是内容,不同的内存,不相等。set容器不允许放重复的元素(内容相同,内存不同,将equals重写)
if(aa1==aa2)
System.out.println("相等");
else
System.out.println("不等");
// System.out.println(aa1);
// System.out.println(aa2);
}
}
class TestStringEquals
{
public static void main(String[] args)
{
String str1="a"; //String的equals()中进行了重写
String str2="a";
System.out.println(str1.equals(str2));
}
}
结果为true