重寫父類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         

   結果顯示:

 

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM