Java-equals方法

1.package com.msb.test02;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Phone {//手机类:
7.    //属性:
8.    private String brand;//品牌型号
9.    private double price;//价格
10.    private int year ;//出产年份
11.    //方法:
12.
13.    public String getBrand() {
14.        return brand;
15.    }
16.
17.    public void setBrand(String brand) {
18.        this.brand = brand;
19.    }
20.
21.    public double getPrice() {
22.        return price;
23.    }
24.
25.    public void setPrice(double price) {
26.        this.price = price;
27.    }
28.
29.    public int getYear() {
30.        return year;
31.    }
32.
33.    public void setYear(int year) {
34.        this.year = year;
35.    }
36.
37.    @Override
38.    public String toString() {
39.        return "Phone{" +
40.                "brand='" + brand + '\'' +
41.                ", price=" + price +
42.                ", year=" + year +
43.                '}';
44.    }
45.
46.    //构造器:
47.
48.    public Phone() {
49.    }
50.
51.    public Phone(String brand, double price, int year) {
52.        this.brand = brand;
53.        this.price = price;
54.        this.year = year;
55.    }
56.
57.
58.    //对equals方法进行重写:
59.    public boolean equals(Object obj) {//Object obj = new Phone();
60.        //将obj转为Phone类型:
61.        Phone other = (Phone)obj;//向下转型,为了获取子类中特有的内容
62.        if(this.getBrand()==other.getBrand()&&this.getPrice()==other.getPrice()&&this.getYear()==other.getYear()){
63.            return true;
64.        }
65.        return false;
66.    }
67.}
1.package com.msb.test02;
2.
3./**
4. * @Auther: msb-zhaoss
5. */
6.public class Test {
7.    //这是一个main方法,是程序的入口:
8.    public static void main(String[] args) {
9.
10.        //创建Phone类的对象:
11.        Phone p1 = new Phone("华为P40",2035.98,2020);
12.        Phone p2 = new Phone("华为P40",2035.98,2020);
13.        //比较两个对象:p1和p2对象:
14.        //==的作用:比较左右两侧的值是否想的,要么相等,返回true,要么不相等,返回false
15.        System.out.println(p1==p2);//-->>>对于引用数据类型来说,比较的是地址值。--->一定返回的是false
16.
17.        //Object类提供了一个方法 equals方法 :作用:比较对象具体内容是否相等。
18.        boolean flag = p1.equals(p2);//点进源码发现:底层依旧比较的是==,比较的还是地址值。
19.        System.out.println(flag);
20.
21.    }
22.}

总结:

equals作用:这个方法提供了对对象的内容是否相等 的一个比较方式,对象的内容指的就是属性。

父类Object提供的equals就是在比较==地址,没有实际的意义,我们一般不会直接使用父类提供的方法,

而是在子类中对这个方法进行重写。

instanceof

Java-equals方法_第1张图片

利用集成开发工具生成equals方法

【1】利用eclipse:

Java-equals方法_第2张图片

【2】利用idea:

Java-equals方法_第3张图片

你可能感兴趣的:(java,开发语言)