|
TestEqual.java
|
public class TestEqual
{
public static void main (String[] args) {
// Long and Integer classes has overided the equals method
Long l1 = new Long(7);
Long l2 = new Long(7);
if (l1 == l2)
System.out.println("l1 == l2");
else
System.out.println("l1 != l2"); // display
if (l1.equals(l2))
System.out.println("l1.equals(l2)"); // display
else
System.out.println("NOT l1.equals(l2)");
Integer i = new Integer(7);
// Not compilable
// Incompatible type for java.lang.Integer
// cannot convert Integer to Long
//if (i == l1)
// System.out.println("i == l1");
// Using the equals method on a diff type always produces
// false, regardless of content
if (i.equals(l1))
System.out.println("i.equals(l1)");
else
System.out.println("NOT i.equals(l1)");// display
// String class has overrided the equals method
String s1 = new String("700");
String s2 = "700";
String s3 = "700";
String s4 = new String("700");
// different object references
if (s4 == s1)
System.out.println("s4 == s1");
else
System.out.println("s4 != s1");// display
if (s4.equals(s1))
System.out.println("s4.equals(s1)");// display
else
System.out.println("NOT s4.equals(s1)");
// s2 and s3 are actually pointing to the same literal
if (s3 == s2)
System.out.println("s3 == s2");// display
else
System.out.println("s3 != s2");
if (s1.equals(s2))
System.out.println("s1.equals(s2)");// display
else
System.out.println("NOT s1.equals(s2)");
// User defined class extends Objects
// Override equals methods will make a difference
NotOverrideEquals noe1 = new NotOverrideEquals(3);
NotOverrideEquals noe2 = new NotOverrideEquals(3);
// default implementation is compare the obj reference
if (noe1.equals(noe2))
System.out.println("noe1.equals(noe2)");
else
System.out.println("NOT noe1.equals(noe2)");// display
OverrideEquals oe1 = new OverrideEquals(3);
OverrideEquals oe2 = new OverrideEquals(3);
// the default behavior is overrided
if (oe1.equals(oe2))
System.out.println("oe1.equals(oe2)"); // display
else
System.out.println("NOT oe1.equals(oe2)");
}
}
class NotOverrideEquals {
int nn;
NotOverrideEquals(int n) {nn = n;}
}
class OverrideEquals {
int nn;
OverrideEquals(int n) {nn = n;}
// override the Object equal method
public boolean equals(Object obj) {
if ( !(obj instanceof OverrideEquals) )
return false;
OverrideEquals o = (OverrideEquals)obj;
return (nn == o.nn);
}
}
Last updated: 12-10-2002
Copyright © 1999 - 2003 Roseanne Zhang, All Rights Reserved