JAVA学习笔记

2019-01-23  本文已影响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都需要覆盖

上一篇 下一篇

猜你喜欢

热点阅读