Object equals()方法 instanceof运算符

复制代码
package com.msb1;

/**
 * @Auther:liu
 * @Date:-15:20:47
 * @Description:IntelliJ IDEA
 * @Version:1.0
 */
public class Phone {
    //手机类
    //属性:
    private String brand;//品牌型号
    private double price;//价格
    private int year;//出现年份
    //方法:

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    //构造器:

    public Phone() {
    }

    public Phone(String brand, double price, int year) {
        this.brand = brand;
        this.price = price;
        this.year = year;
    }

    @Override
    public String toString() {
        return "Phone{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                ", year=" + year +
                '}';
    }
//对equals方法进行重写
    public boolean equals(Object obj) {
        //将obj专为Phone类型
        Phone other=(Phone) obj;
        if(this.getBrand()==other.brand&&this.getPrice()==other.price&&this.getYear()==other.year){
            return true;
        }
            return false;
    }
}
复制代码
复制代码
package com.msb1;

/**
 * @Auther:liu
 * @Date:-15:22:48
 * @Description:IntelliJ IDEA
 * @Version:1.0
 */
public class Test {
    //这是一个main方法:是程序的入口
    public static void main(String[] args) {
        Phone p=new Phone("iphone13",3999.00,2021);
        Phone p1=new Phone("iphone13",3999.00,2021);
        //比较两个对象P----P1
        //==的作用:比较左右两侧的值是否相等,要么相等,返回true,要么不相等,返回false
        System.out.println(p==p1);//对于引用数据类型来说,比较的是地址。一定返回的是flase
        //Object类提供了一个方法,equals方法:作用比较对象具体内容是否相等。
        boolean flag;
        flag=p.equals(p1);//点进源码底层依旧比较的是==,比较的还是地址值
        System.out.println(flag);
    }
}
复制代码

总结:

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

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

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

 

instanceof运算符

 

posted @   爱的加勒比  阅读(11)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示