diff --git a/javaSE-day01/src/com/inmind/object01/Demo03.java b/javaSE-day01/src/com/inmind/object01/Demo03.java new file mode 100644 index 0000000..7da6947 --- /dev/null +++ b/javaSE-day01/src/com/inmind/object01/Demo03.java @@ -0,0 +1,37 @@ +package com.inmind.object01; + +import java.util.Objects; + +/* + Objects工具类的equals方法 + static boolean equals(Object a, Object b) 返回 true如果参数相等,彼此 false否则。 + + 源码: + public static boolean equals(Object a, Object b) { + return (a == b) || (a != null && a.equals(b)); + } + + 注意:Objects工具类的equals方法是没有对任何自定义类的对象的内容进行比较的功能的!!!它还是 + 借用传入的形参一 a的equals方法!!!! + + Objects类的equals方法的作用:在实现判断2个对象是否相同的基础上,有效地避免空指针异常 + + 注意:如果一个自定义类的对象,在比较属性是否相同则为同一个对象时,必定要重写equals方法 + */ +public class Demo03 { + public static void main(String[] args) { + Person p1 = new Person("刘备", 18); + Person p2 = new Person("刘备", 18); + //普通写法: + System.out.println(p1.equals(p2));//true + +// p1 = null; + /*if (p1 != null) {//健壮性地非空判断 + System.out.println(p1.equals(p2)); + }*/ + //工具类写法 + System.out.println(Objects.equals(p1, p2));//false + + System.out.println("程序结束"); + } +}