本帖最后由 bingyu 于 2015-5-4 17:59 编辑
class Test {
}
class Test2 {
private int age;
Test2(int age) {
this.setAge(age);
}
public boolean equals(Object obj) {
// TODO Auto-generated method stub
return true;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
public class Eq {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 10;
long b = 10L;
double c = 5.0;
String s1 = "hello";
String s2 = "hello";
Test t1 = new Test();
Test t2 = new Test();
Test t3 = t1;
// equals是对象才有的方法。
// “==”比较的是值【变量(栈)内存中存放的对象的(堆)内存地址】
// equal用于比较两个对象的值是否相同【不是比地址】一般被覆盖
System.out.println(a == b); // true //“==”对于基本数据类型,栈中的值相等就行了...
System.out.println((c + c) == a); // true
System.out.println(s1.equals("hello"));// true //String中的equals是已经写好了的
System.out.println(s1 == "hello"); // true
System.out.println(s1 == new String("hello")); // false
System.out.println(s1.equals(new String("hello"))); // true
System.out.println(s1.equals(s2)); // true
System.out.println(t1.equals(t2)); // false 对象中的equals方法
System.out.println(t1.equals(t3)); // true
Test2 t4 = new Test2(30);
Test2 t5 = new Test2(30);
Test2 t6 = new Test2(40);
System.out.println(t4.getAge() == t5.getAge()); // true //对象中的覆盖了equals方法
System.out.println(t4.getAge() == t6.getAge()); // false
System.out.println(t4.equals(t6)); // true //覆盖了equals方法, 随便怎么比都是true
}
}
|