0

0

java equals方法是什么

藏色散人

藏色散人

发布时间:2023-03-10 10:58:07

|

20030人浏览过

|

来源于php中文网

原创

java equals方法是object类中的方法,只能用于判断引用类型;equals方法默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等,其使用语法如“public boolean equals(Object obj) {return (this == obj);}”。

java equals方法是什么

本教程操作环境:Windows10系统、java8、Dell G3电脑。

Java中的equals方法

一、"=="运算符

"=="是一个比较运算符。

  • "=="既可以判断基本类型,又可以判断引用类型。
  • "=="如果判断基本类型,判断的是值是否相等。eg: int i=10; double d=10.0
  • "=="如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象。

二、equals方法

  • equals是object类中的方法,只能用于判断引用类型
  • equals方法默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如String和Integer类中的equals源代码。

Object类中的equals方法的源码:

立即学习Java免费学习笔记(深入)”;

Object类中的equals方法默认就是比较对象地址是否相同。

    public boolean equals(Object obj) {
        return (this == obj);
    }
"hello".equals("abc");

解释:this指的就是当前对象,this是指equals方法是谁调用的,上面的hello调用的equals,所以this指的是字符串hello,而==右边的obj对象,是传入的abc。

三、重写equals方法练习

练习一:

package object;
/*
判断两个person对象的内容是否相等
如果两个person对象的各个属性值都一样,则返回true,反之返回false
 */
public class EqualsExercise {
    public static void main(String[] args) {
        Person person1 = new Person("jack", 10, '男');
        Person person2 = new Person("jack", 10, '男');
        System.out.println(person1.equals(person2));   //输出结果是true
    }
}

class Person {
    private String name;
    private int age;
    private char gender;

    //重写Object的equals方法
    public boolean equals(Object obj) {
        //如果比较的两个对象是同一个对象,则直接返回true
        if (this == obj){   //this就代表调用equals方法的那个对象,obj就是方法里面的实参
            return true;
        }
        //类型判断
        if (obj instanceof Person){  //obj是Person,我们才比较
            //进行 向下转型(即obj转成Person); 因为我需要得到obj的各个属性,如果不转型,拿不到
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
        }
        //如果不是person,则直接返回false;总不能拿一个人跟一个狗比
        return false;
    }


    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    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 char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }
}

Tips:

手机在线人工冲值
手机在线人工冲值

说明:我不知道这个系统还能用到什么地方!他的运作方式是这样的,客户在其他地方比如掏宝购买了 你得卡,然后在你的网站进行冲值,你得有人登陆并看着后台,如果有人冲值,就会刷出记录,手工冲值完毕后,你得点击 [冲值完毕],客户的页面 就会返回 冲值信息!安装:上传所有文件,倒入(sql.txt)mysql数据库,使用myphpadminphplib 777phplib/sys.php 777phplib

下载

instanceof的用法:result = object instanceof class

instanceof左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返false。

练习二:

c15b90a891fd3ea1c7383b7c88f4687.jpg

 解释:

  • sout1:p1和p2都是对象,因此==判断的是地址是否相同,false
  • sout2:p1.name和p2.name都是字符串,因此这里的equals调用的是String类的中的equals方法,判断的是内容是否相同,true
  • sout3:p1和p2都是对象,因此这里的equals是Object类中的equals方法,判断的是地址是否相同,false
  • sout4:s1和s2都是String类的对象,因此这里的equals调用的是String类的中的equals方法,判断的是内容是否相同,true
  • sout5:s1和s2都是对象,因此==判断的是地址是否相同,false

练习三:

13fc63853b32c9dce4679b1ed1cbbc4.jpg

 解释:

  • sout1:65和65.0是相等的,true
  • sout2:字符的本质还是数字,查阅AscII表,A就是12,true
  • sout3:没啥说的
  • sout4:没啥说的
  • sout5:没啥说的
  • sout6:都不是同一种类型,==直接编译错误

相关推荐:《Java视频教程

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

6

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

28

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

12

2026.01.15

windows查看wifi密码教程大全
windows查看wifi密码教程大全

本专题整合了windows查看wifi密码教程大全,阅读专题下面的文章了解更多详细内容。

35

2026.01.15

浏览器缓存清理方法汇总
浏览器缓存清理方法汇总

本专题整合了浏览器缓存清理教程汇总,阅读专题下面的文章了解更多详细内容。

5

2026.01.15

ps图片相关教程汇总
ps图片相关教程汇总

本专题整合了ps图片设置相关教程合集,阅读专题下面的文章了解更多详细内容。

8

2026.01.15

ppt一键生成相关合集
ppt一键生成相关合集

本专题整合了ppt一键生成相关教程汇总,阅读专题下面的的文章了解更多详细内容。

5

2026.01.15

php图片上传教程汇总
php图片上传教程汇总

本专题整合了php图片上传相关教程,阅读专题下面的文章了解更多详细教程。

2

2026.01.15

phpstorm相关教程大全
phpstorm相关教程大全

本专题整合了phpstorm相关教程汇总,阅读专题下面的文章了解更多详细内容。

4

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 2.6万人学习

C# 教程
C# 教程

共94课时 | 6.8万人学习

Java 教程
Java 教程

共578课时 | 46.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号