美文网首页
JAVA学习笔记

JAVA学习笔记

作者: 就这样吧嘞 | 来源:发表于2019-01-23 20:21 被阅读0次

1. Equals方法

一般情况下不可以再用==时,用Equals方法,属于Object并不是final,任何类都可以继承和覆盖这个方法。

public class Main {

    public static void main(String[] args) throws Exception {
        B i=new B (20);
        B j=new B (20);
        System.out.println(i==j);
    }
}

class B {
     private int b;
    B(int b) {
        this.b=b;
    }
}

结果是false

因为对象之间==比较的是内存地址,不是对象属性
格式 调用与参数比较
i.equals(j)

import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws Exception {
        B i=new B (20);
        B j=new B (20);
        System.out.println(i.equals(j));
    }
}

class B {
     private int b;
    B(int b) {
        this.b=b;
    }
}

结果false
因为默认比较的是地址
覆盖Equals

public class Main {

    public static void main(String[] args) throws Exception {
        B m=new B (20);
        B n=new B (20);
        System.out.println(m.equals(n));
    }

}

class B {
     private int b;
    B(int b) {
        this.b=b;
    }
    public boolean equals(B x) {
        if(this.b==x.b) {
            return true;
        }
        else
            return false;       
    }
}

结果

true

一般Equals都需要覆盖

相关文章

网友评论

      本文标题:JAVA学习笔记

      本文链接:https://www.haomeiwen.com/subject/dkvsjqtx.html