26.equals函数的作用

  • equals函数在什么地方
    • 所有的类当中都会有equals函数
 
  • equals函数的作用
    • “==”操作符的作用:判断两个引用是否指向堆内存当中的同一块地址
 
  1. publicclassTest{
  2. publicstaticvoid main(String args []){
  3. User u1 =newUser();
  4. User u2 =newUser();
  5. User u3 = u1;
  6. boolean b1 = u1 == u2;
  7. boolean b2 = u1 == u3;
  8. System.out.println(b1);
  9. System.out.println(b2);
  10. }
  11. }
结果:
D:\work\src>javac Test.java
 
D:\work\src>java Test
false
true
 
    • equals函数的作用是用来比较,两个对象的内容是否相等(类型和值都相等)
 
 
  • 复写equals函数的方法
 
  1. classUser{
  2. String name;
  3. int age;
  4. public boolean equals(Object obj){
  5. if(this== obj){
  6. returntrue;
  7. }
  8. //instanceof作用:判断前面的对象是不是后面对象的类型
  9. boolean b = obj instanceof User;
  10. if(b){
  11. //obj向下转型为User对象
  12. User u =(User)obj;
  13. if(this.age == u.age &&this.name.equals(u.name)){
  14. returntrue;
  15. }
  16. else{
  17. returnfalse;
  18. }
  19. }
  20. else{
  21. returnfalse;
  22. }
  23. }
  24. }
 
  1. publicclassTest{
  2. publicstaticvoid main(String args []){
  3. User u1 =newUser();
  4. User u2 =newUser();
  5. User u3 =newUser();
  6. u1.name ="zhagnsan";
  7. u1.age =12;
  8. u2.name ="lisi";
  9. u2.age =12;
  10. u3.name ="zhagnsan";
  11. u3.age =12;
  12. System.out.println(u1.equals(u2));
  13. System.out.println(u1.equals(u3));
  14. }
  15. }
结果:
D:\work\src>javac User.java
 
D:\work\src>javac Test.java
 
D:\work\src>java Test
false
true
 





posted @ 2016-08-28 17:27  ArronEve  阅读(212)  评论(0编辑  收藏  举报