java 同一 == 同値 equal()

1.同一:不同的变量,参照同一个instance ,用== 进行比较
2.同値:不同的instance,有一样的值。public boolean equals(Object obj)

 

 

1.同一:不同的变量,参照同一个instance,用== 进行比较

Main.java        a==b 返回true

--------------------------------------------------------------------------------------

package chapter308test;

public class Main {
    public static void main(String[] args) {
        Object a = new Object();
        Object b = a;
        System.out.println(a == b);
    }

}

 

2.同値:public boolean equals(Object obj)

第一个例子,两个文件

①Sample.java

②Main.java

run之后的结果 :true

①Sample.java

--------------------------------------------------------------------------------------

package chapter309;

public class Sample {
    private int num;
    private String name;

    public Sample(int num, String name) {
        this.num = num;
        this.name = name;
    }

    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }

        if (obj instanceof Sample) {
            Sample s = (Sample) obj;
            return s.num == this.num;
        }

        return false;
    }

}

②Main.java

--------------------------------------------------------------------------------------

package chapter309;

public class Main {

    public static void main(String[] args) {
        Sample a = new Sample(10, "a");
        Sample b = new Sample(10, "b");
        System.out.println(a.equals(b));
    }
}

 

第二个例子,两个文件

Main.java

Sample.java

run之后的结果 :false

--------------------------------------------------------------------------------------

①Main.java

package chapter310;

public class Main {
    public static void main(String[] args) {
        Object a = new Sample(10);
        Object b = new Sample(10);
        System.out.println(a.equals(b));
    }

}

--------------------------------------------------------------------------------------

②Sample.java

package chapter310;

public class Sample {
    private int num;

    public Sample(int num) {
        this.num = num;
    }

    public boolean equals(Sample obj) {
        if (obj == null) {
            return false;
        }

        return this.num == obj.num;
    }

}
 

 

 

 

编译,运行


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部