1. 程式人生 > 其它 >Java基礎-equals和==

Java基礎-equals和==

package com.hspedu.equals_;

public class Course321 {
    public static void main(String[] args) {
        // == 和 equals

        /*
        * 基本資料型別:==比較值是否相等
        * 引用資料型別:==比較物件地址是否相等,是否指向同一物件;equals比較物件儲存的值
        * */
        Person p1 = new Person();
        p1.name = "hspedu";

        Person p2 
= new Person(); p2.name = "hspedu"; System.out.println(p1 == p2); // false System.out.println(p1.name.equals(p2.name)); // true System.out.println(p1.equals(p2)); // false String s1 = new String("abc"); String s2 = new String("abc"); System.out.println(s1.equals(s2));
// true System.out.println(s1 == s2); // false } } class Person { public String name; }
package com.hspedu.equals_;

public class Course321 {
    public static void main(String[] args) {
        //

        Person person1 = new Person("jack", 10, '男');
        Person person2 = new Person("smith", 10, '男');
        Person person3 
= new Person("jack", 10, '男'); System.out.println(person1 == person2); System.out.println(person1.equals(person2)); System.out.println(person1.equals(person3)); /* * 如何比較兩個物件的所有屬性值? * object類的equals方法,比較地址,需要重寫方法 * */ } } class Person { private String name; private int age; private char gender; public boolean equals(Object obj) { if (this == obj) { return true; } // 型別判斷,如果是Person類可以比較 if (obj instanceof Person) { Person p = (Person) obj; return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender; } return false; } public Person(String name, int age, char gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public char getGender() { return gender; } public void setGender(char gender) { this.gender = gender; } }