1. 程式人生 > >Java學習筆記13(equals()方法;toString()方法)

Java學習筆記13(equals()方法;toString()方法)

test pre 輸出 setname ring ash rgs println pub

equals()方法;

  equals方法是Object類中的方法;Object是所有類的祖宗,所以所有類都有equals()方法;

  boolean equals(Object obj);

  equals方法是比較兩個對象是否相等;對象為引用數據類型,比較的是內存地址;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        
this.name = name; } }
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("張三");
        System.out.println(p1);//p1內存地址
        Person p2=new Person();
     p2.setName("張三"); System.out.println(p2);
//p2內存地址boolean
b=p1.equals(p2); System.out.println(b); } }//運行結果:com.zs.demo5.Person@15db9742 // com.zs.demo5.Person@6d06d69c // false

可以看出,雖然p1與p2內用相同,但是內存地址卻不同,所以比較結果為false;很多情況下我們是要比較他們的內容是否相同,所以需要重寫equals方法;

public class Person {
    private String name;

    
public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) {//重寫equals方法 if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } }
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("張三");
        System.out.println(p1);//p1內存地址
        Person p2=new Person();
     p2.setName("張三"); System.out.println(p2);
//p2內存地址boolean b=p1.equals(p2); System.out.println(b); } } //運行結果:com.zs.demo5.Person@bd308 //     com.zs.demo5.Person@1f //     true

toString()方法;輸出語句中調用的是toString方法,上例中,輸出的是內存地址,當需要看對象中的值的時候,就重寫toString()方法;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {//重寫toString()方法
        return "Person [name=" + name + "]";
    }
    
}
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("張三");
        System.out.println(p1);//p1內存地址
        Person p2=new Person();
     p2.setName("張三"); System.out.println(p2);
//p2內存地址 } }//運行結果:

//Person [name=張三]
//Person [name=張三]



  

  

Java學習筆記13(equals()方法;toString()方法)