Demo01.java 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package course.api;
  2. /**
  3. * @author WanJl
  4. * @version 1.0
  5. * @title Demo01
  6. * @description Object类
  7. * @create 2026/7/28
  8. */
  9. public class Demo01 {
  10. public static void main(String[] args) {
  11. /*
  12. java中所有类的父类 就是java.lang.Object类
  13. 常用的方法:
  14. 1、equals() 比较两个对象是否相同,一般我们会重写equals方法,让equals方法按照我们的【要求和规则】进行比较。
  15. Object类中比较的时候 ==是否相等 也就是地址值(哈希码值)是否相等
  16. 2、hashCode():返回对象的哈希码值,Object返回的都是该对象在内存中的地址
  17. 3、toString(): 把对象内容按照格式转为字符串,
  18. Object默认的是转换为 :
  19. 包名.类名 @ 哈希码值的十六进制
  20. 一般我们也会重写toString方法,方便我们输出对象的属性变量。
  21. 在重写equals的时候一般都会一起重写hashCode()方法。
  22. 如果equals()比较不想等,那么两个对象的hashCode()方法返回的整数值也不要相等。
  23. 所以为了符合我们开发的业务需求,一般都会为实体类(可以代表一个业务实体的类)重写equals()和 hashCode()方法
  24. 我们使用IDEA开发,不需要自己手动重写上面的三个方法,只需要使用快捷键生成即可。
  25. 当然,你要想自己写也可以。
  26. */
  27. Person p=new Person("张三",25);
  28. Person p1=new Person("李四",12);
  29. System.out.println(p==p1); //false
  30. System.out.println(p.equals(p1));//false 当重写了equals方法后,比较就返回true
  31. String s1=new String("张三");
  32. String s2=new String("张三");
  33. System.out.println(s1==s2); //false
  34. System.out.println(s1.equals(s2)); // true
  35. System.out.println(p.hashCode());
  36. System.out.println(p1.hashCode());
  37. Person p2=new Person();
  38. System.out.println(p2.hashCode());
  39. System.out.println(p2);
  40. System.out.println(p);
  41. System.out.println(p1);
  42. }
  43. }