zoukankan      html  css  js  c++  java
  • 重写父类equals()、toString()方法

    equals()方法

      比较内容    

        如a=new("1","2","3");

        b=new("1","2","3");

        如何比较a,b相同?a.equals(b)? (错误)

        需要对equals重写 

      如果希望不同内存但相同内容的两个对象equals时返回true,则需要重写equals

    toString()方法

      输出当前对象地址
        如a=new();

        printf(a)与print(a.toString)相同 输出地址。

      想要得到返回值,就必须重写toString( )方法

    例:

        在Person类中重写:

     1 public class Person {
     2     private String name;
     3     private int age;
     4     public Person() {
     5     }
     6     public Person(String name, int age) {
     7         this.name = name;
     8         this.age = age;
     9     }
    10     public String getName() {
    11         return name;
    12     }
    13     public void setName(String name) {
    14         this.name = name;
    15     }
    16     public int getAge() {
    17         return age;
    18     }
    19     public void setAge(int age) {
    20         this.age = age;
    21     }
    22     //重写父类toString()
    23     @Override
    24     public String toString() {
    25         return "Person [name=" + name + ", age=" + age + "]";
    26     }
    27     //重写父类equals方法
    28     public boolean equals(Object obj) {
    29         if (this == obj)
    30             return true;
    31         if (obj == null)
    32             return false;
    33         if (getClass() != obj.getClass())
    34             return false;
    35         Person other = (Person) obj;
    36         if (age != other.age)
    37             return false;
    38         if (name == null) {
    39             if (other.name != null)
    40                 return false;
    41         } else if (!name.equals(other.name))
    42             return false;
    43         return true;
    44     }
    45 
    46 }        

      在demo中调用执行

     1 public class Demo01 {
     2     public static void main(String[] args) {
     3         Person p=new Person("小红帽",18);
     4         Person p2=new Person("大灰狼",19);
     5         boolean flag=p.equals(p2);
     6         System.out.println(flag);
     7         System.out.println(p==p2);
     8         String s="aa";
     9         System.out.println(s.toString());
    10         Person p=new Person("小红帽",18);
    11         System.out.println(p);
    12     }
    13 }
    14         

       结果显示:

     

      

  • 相关阅读:
    Java web ch02_5
    Java web ch02_4
    Java web ch02_3
    Java web ch02_9
    myeclipse和eclipse的区别以及优越性
    新的学年,迎来新的活力!
    Javaweb中的Tomcat服务器(简单了解)
    一切都是对象
    java中被隐藏的具体实现
    SSL与TLS的区别以及介绍
  • 原文地址:https://www.cnblogs.com/zhai113/p/11623494.html
Copyright © 2011-2022 走看看