重写Object类的方法
创始人
2024-03-08 21:58:45
0

55.重写Object类的方法

把equals()方法体自定义为我们自己的比较规则即可:两个学生学号和姓名相同,就认为是同一个学生对象

判断obj和this(当前学生对象)是否为同一对象

如果this当前学生对象和obj内存地址相同,==结果为true,就认为两者为同一对象

如果传进来的obj对象不是学生类型(Student)类型,结果一定是false
instanceof运算符: 用来判断某个对象是否为某种类型 ---  对象名instanceof 类型名

如果obj是Student类型

比较s和this的sid及name即可

  • 重写equals()方法

当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()

快捷键:alt+insert选择Override Methos...

  • instanceof运算符的作用

instanceof用于判断一个引用类型所引用的对象是否是一个类的实例

Java.lang.Sting重写了equals()方法,把equals()方法的判断变为了判断其值。
总结:

Object类的方法可以根据需求自行重写

  • equals()
  • toString():输出对象信息时,默认调用
  • Java.lang.String重写了equals()方法,把equals()方法的判断变为了判断其值。也重写了toString()方法

instanceof用于判断一个引用类型所引用的对象是否是一个类的实例

//学生类Student类

package cn.com.objdemo;

import java.util.Locale;

//学生类
public class Student {
    //学号  姓名   年龄    体重
    private int sid;
    private String name;
    private int age;
    private int weight;

    public Student(){

    }

    public Student(int sid,String name,int age,int weight){
        this.sid=sid;
        this.name=name;
        this.age=age;
        this.weight=weight;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }

    //把equals()方法体自定义为我们自己的比较规则即可:两个学生学号和姓名相同,就认为是同一个学生对象
    //判断obj和this(当前学生对象)是否为同一对象
    public boolean equals(Object obj) {
        if(this==obj){
            //如果this当前学生对象和obj内存地址相同,==结果为true,就认为两者为同一对象
            return true;
        }
        //如果传进来的obj对象不是学生类型(Student)类型,结果一定是false
        //instanceof运算符: 用来判断某个对象是否为某种类型 ---  对象名instanceof 类型名
        if(!(obj instanceof Student)){
            return false;
        }
        //如果obj是Student类型
        Student s=(Student) obj;
        //比较s和this的sid及name即可
        if(this.sid == s.sid && this.name.equals(s.name)){
            return true;
        }else{
            return false;
        }
    }

    //重写toString():对象信息不要返回类似内存地址的信息,而是返回学生姓名
    public String toString() {
        return this.name;
    }

    public static void main(String[] args) {
        Student s1=new Student(1,"小哈",23,35);
        Student s2=new Student(1,"小哈",23,35);
        //判断两个对象是否为同一对象: ==  equals()
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));
        /*Student s1=new Student(1,"小哈",23,35);
        Student s2=s1;
        //判断两个对象是否为同一对象: ==  equals()
        System.out.println(s1==s2);
        System.out.println(s1.equals(s2));*/

        System.out.println("_______________________");
        //如下两句代码作用相同,输出一个对象时,等同于调用了它的toString()
        System.out.println(s1.toString());
        System.out.println(s1);

        //String类不仅重写了equals()方法,还重写了toString()方法
        String s="test";
        //如下两句代码作用相同,输出一个对象时,等同于调用了它的toString()
        System.out.println(s.toString());
        System.out.println(s);
    }
}

相关内容

热门资讯

阿联酋总统会见卡塔尔埃米尔,讨... 经济观察网讯 据央视新闻消息,当地时间5月4日,阿联酋总统穆罕默德在阿布扎比会见了卡塔尔埃米尔(国家...
广东河源万绿湖低空观光首飞 5月1日,随着搭载新质生产力基因的“万绿壹号”“万绿贰号”直升机携彩烟腾空而起,广东河源万绿湖“低空...
U盘加密小技巧:保护数据安全的... 人们常把小秘密存进U盘,若不想让他人知晓,可以给U盘加密。下面分享几个简单实用的U盘加密技巧,快来看...
热点问答|新加坡人民行动党缘何... 转自:新华社新华社新加坡5月4日电  热点问答|新加坡人民行动党缘何再赢议会选举新华社记者刘春涛新加...
老戏新演看点多,《盗魂铃》呈现... 中国青年报客户端讯(中青报·中青网记者 蒋肖斌)5月2日,升级版《盗魂铃》在北京长安大戏院与观众见面...
超意兴携手小饭碗公益计划,科普... 在五一“熊猫儿童音乐节”期间,中华老字号餐饮品牌超意兴联合“小饭碗公益计划”寓教于乐,通过趣味游戏、...
洗衣皂、洗衣粉、洗衣液、洗衣凝... 常听到有这种说法:衣服不是穿坏的,而是洗坏的。换季时期,大批量衣物需要清洗,为避免不必要的损失,洗衣...
千年经典向新行丨烧制上等龙泉青... 转自:中工网“陶瓷是中华瑰宝,是中华文明的重要名片”,英文china,就有瓷器的意思。其中,“青如玉...
文旅热潮涌动 大数据揭秘“五一... 转自:央视新闻客户端  “五一”假期过半  这个假期  大家都去哪儿玩了?  哪些城市和景点成了新的...
破解车企出海难题 盖世汽车发... 本报记者 杨让晨 石英婧 上海报道(发布会现场。受访者/图)在全球汽车产业智能化与绿色转型浪潮的推动...
走市场 看韧性 强信心丨好产品... 转自:中工网人民日报记者 王珂 颜珂每年生产打火机超过150亿只,产量占全球的70%,产品远销120...
iPhone二十周年纪念版曝光... 声音 | 小白The Information近日援引多位消息人士消息报道了关于苹果20周年纪念款的消...
美国突发:家庭聚会上发生枪击事... 当地时间5月4日凌晨,美国休斯敦一处住宅正在举行的家庭聚会上发生枪击事件,14人中枪,1人死亡,多人...
耐克、阿迪达斯、斯凯奇……76... 转自:扬子晚报当地时间5月2日,央视记者获悉,美国鞋类分销商和零售商协会本周致信白宫,请求豁免美国总...
将志愿服务融入基层治理,广州黄... 中国青年报客户端讯(黄三笑 中青报·中青网记者 林洁)近日,广州市黄埔区启动志愿者实训基地巡山护林活...
给U盘加密的几种方法 U盘易丢失,为防止文件被随意查看,可对其进行加密处理。那么,如何给U盘加密?1、 安装U盘加密软件时...
华安证券给予圣湘生物买入评级,... 华安证券05月04日发布研报称,给予圣湘生物(688289.SH)买入评级。评级理由主要包括:1)呼...
【文化中国行】“五一”假期文艺... 转自:央视网央视网消息 (新闻联播):这个“五一”假期,文艺演出市场热度持续攀升,在满足大众假期文化...
把青春“种”在合肥 港青八年“... 来源:中国新闻网 中新社合肥5月4日电 题:把青春“种”在合肥 港青八年“破土”成新农人作者 傅天骋...
把青春“种”在合肥 港青八年... 中新社合肥5月4日电 题:把青春“种”在合肥 港青八年“破土”成新农人作者 傅天骋“人生就像育种,总...