zoukankan      html  css  js  c++  java
  • 重写equals方法

     1 package object;
     2 
     3 public class Test {
     4     public static void main(String[] args) {
     5         Person person1=new Person();
     6         person1.setName("ZTT");
     7         
     8         Person person2=new Person();
     9         person2.setName("ZTT");
    10         
    11         System.out.println(person1.name.equals(person2.name));//结果:true
    12         
    13     }
    14 }

    我们都知道equals比较的是内容,很明显上面的结果是true.

    然而equals方法的参数对象是Object,那Person也是对象,如果直接使得person.equals(person2)结果又如何呢,答案是false,因为在equals方法中用的是==,比较的是地址,让我们重写Person的equals方法

    使得结果为true.

    重写equals方法:

     1 package object;
     2 
     3 public class Person {
     4     public String getName() {
     5         return name;
     6     }
     7     public void setName(String name) {
     8         this.name = name;
     9     }
    10     public int getAge() {
    11         return age;
    12     }
    13     public void setAge(int age) {
    14         this.age = age;
    15     }
    16     String name;
    17     int age;
    18     
    19     @Override
    20     public boolean equals(Object obj) {
    21         Person person=(Person)obj;
    22         /*if(person.name.equals(name)&&person.age==age){
    23             return true;
    24         }
    25         return false;*/
    26         return person.name.equals(name)&&person.age==age;
    27         
    28     }
    29     
    30 }
     1 package object;
     2 
     3 public class Test {
     4     public static void main(String[] args) {
     5         Person person1=new Person();
     6         person1.setName("ZTT");
     7         person1.setAge(10);
     8         
     9         Person person2=new Person();
    10         person2.setName("ZTT");
    11         person2.setAge(10);
    12         
    13         System.out.println(person1.equals(person2));//结果:true
    14         
    15     }
    16 }
  • 相关阅读:
    OpenMP vs WinSxS
    JIT, dynarec and binary translation
    VC++2010 bug
    控制和释放共享内存块
    分配和释放信号量
    代码列表5.1 (shm.c) 尝试共享内存
    绑定和脱离
    信号量
    每个字段动态添加一个随机数
    最近做了一个红底鞋类电商网站
  • 原文地址:https://www.cnblogs.com/ztt0918/p/8073860.html
Copyright © 2011-2022 走看看