/** * 运算符及控制流程(一) * 关系操作符 * 关系操作符生成一个boolean结果,它计算操作符值之间的关系。如果关系是真实的 * 则生成true,否则生成false * * @author zhoutao * * "=="和"!="适合所有内置的基本数据类型,其它关系运算符不适合boolean * "=="和"!="也适合所有对象,但比较的是对象的引用。 * * equals()方法比较两个对象的内容是否相等,对于基本数据类型直接使用equals * 即可得到正确的结果。对于自定义类型,一定要重写equals方法,否则得到的是 * 意想不到的结果。 */ class Value { int a; /* * (非 Javadoc) * @see java.lang.Object#equals(java.lang.Object) * 自定义类中如果要比较两个对象(内容)是否相同,则一定要覆盖 * Object类的equals()方法 */ public boolean equals(Object obj) { Value v = (Value)obj; if(v.a == this.a) return true; return false; } } public class EqualsTest { public static void main(String[] args) { Integer i = new Integer(66); Integer j = new Integer(66); //“==”比较两个引用 System.out.println(i==j); //“equals方法比较两个对象内容,Integer类已经重写了Object类的equals方法 System.out.println(i.equals(j)); /* * 测试自定义类 */ Value v1 = new Value(); v1.a = 33; Value v2 = new Value(); v2.a = 33; System.out.println(v1==v2); System.out.println(v1.equals(v2)); } } 运行结果: false true false true |
运算符及控制流程(一)
最新推荐文章于 2023-11-29 22:08:38 发布