package TestStringEquals; /** * A的类默认继承了Object这个类,所以在main函数里面调用toString方法不会报错 * 事实上所有的类都默认继承了Object这个类 * **/ class A{//输出结果为:“哈哈”表明了可以对默认继承的Object类中的toString方法进行重写 public int i; public A(int i) { this.i = i; } } public class TestObject { public static void main(String[] args) { A aa1 = new A(2); A aa2 = new A(2); if(aa1.equals(aa2) == false) { System.out.printf("aa1与aa2不相等"); }else { System.out.printf("aa1与aa2不相等"); } if(aa1 == aa2){ System.out.printf("aa1与aa2相等"); }else { System.out.printf("aa1与aa2不相等"); } // System.out.println(aa1); // System.out.println(aa2); } } /** *输出结果为: 哈哈 **/ package TestStringEquals; /** * A的类默认继承了Object这个类,所以在main函数里面调用toString方法不会报错 * 事实上所有的类都默认继承了Object这个类 * **/ /** * 本程序表明了可以自己重写equals方法 * 原本的equals方法: * public boolean equals(Object obj) * { * return this == obj; * } * **/ class B{//输出结果为:“哈哈”表明了可以对默认继承的Object类中的toString方法进行重写 public int i; public B(int i) { this.i = i; } public boolean equals(Object obj)//*关键方法 { B aa = (B)obj; if(this.i == aa.i)// if (当前对象的i和obj代表的i相等) return true;//上一条代码中,aa.i 不能为obj.i,要加上B aa = (B)obj;转化为对象才可以 else { return false; } } } public class TestStringEquals_2 { public static void main(String[] args) { B aa1 = new B(2); B aa2 = new B(2); System.out.println(aa1.equals(aa2)); } } /** *输出结果为: true **/