Java 使用类型为Object的变量指向任意类型的对象


Posted in Java/Android onApril 13, 2022

基本概念:

  • Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入;
  • Object类是所有Java类的祖先。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。可以使用类型为Object的变量指向任意类型的对象

equals()方法:比较两个对象是否同一

      如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等。如果两个引用对象指的是同一个对像,则称这两个变量同一。Object类中定义的equals 函数原型为:

public boolean equals(Object);他是判断两个对象是否同一,并不是是否相等

Java 使用类型为Object的变量指向任意类型的对象

  •  ①只能处理引用类型变量
  •  ②在Object类,发现equals()仍然比较的两个引用变量的地址值是否相等
package com.example.demo.test;

public class Person {

    private String userName;
    private String age;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}
package com.example.demo.test;

public class Test {

    public static void main(String[] args) {
        Person p1 = new Person();
        Person p2 = new Person();
        System.out.println(p1.equals(p2));
        System.out.println(p1 == p2);

        /*
         * String类重写了Object类的equals()方法,比较是两个对象的实体内容"是否完全相同。
         */
        String s1 = new String("AA");
        String s2 = new String("AA");
        System.out.println(s1.equals(s2));
        System.out.println(s1 == s2);
    }
}

Java 使用类型为Object的变量指向任意类型的对象

从运行结果可以看到的是Object中的equals方法比较的是两个对象是否同一,

而String类中的equals方法比较的是字符串的value是否相等。 请看String.java中equals的方法

public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

到此这篇关于Java Object类equals方法的文章就介绍到这了!

Java/Android 相关文章推荐
Java Optional<Foo>转换成List<Bar>的实例方法
Jun 20 Java/Android
解决SpringCloud Feign传对象参数调用失败的问题
Jun 23 Java/Android
Java实现二维数组和稀疏数组之间的转换
Jun 27 Java/Android
Java集成swagger文档组件
Jun 28 Java/Android
Jackson 反序列化时实现大小写不敏感设置
Jun 29 Java/Android
springboot+WebMagic+MyBatis爬虫框架的使用
Aug 07 Java/Android
JavaWeb实现显示mysql数据库数据
Mar 19 Java/Android
MybatisPlus EntityWrapper如何自定义SQL
Mar 22 Java/Android
Java 定时任务技术趋势简介
May 04 Java/Android
Android开发手册自定义Switch开关按钮控件
Jun 10 Java/Android
详解Flutter自定义应用程序内键盘的实现方法
Jun 14 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
Jun 21 Java/Android
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
Apr 13 #Java/Android
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
Apr 13 #Java/Android
Android开发之WECHAT微信小程序路由跳转的两种形式
Apr 12 #Java/Android
JavaWeb Servlet开发注册页面实例
Java中的继承、多态以及封装
JAVA长虹键法之建造者Builder模式实现
Apr 10 #Java/Android
SpringCloud项目如何解决log4j2漏洞
Apr 10 #Java/Android
You might like
优化PHP代码的53条建议
2008/03/27 PHP
PHP set_error_handler()函数使用详解(示例)
2013/11/12 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
js CSS操作方法集合
2008/10/31 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
jQuery三级下拉列表导航菜单代码分享
2020/04/15 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
第一次接触神奇的前端框架vue.js
2016/12/01 Javascript
jquery操作ID带有变量的节点实例
2016/12/07 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
python http基本验证方法
2018/12/26 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python else语句在循环中的运用详解
2020/07/06 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
python爬取招聘要求等信息实例
2020/11/20 Python
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
西安众合通用.net笔试题
2013/03/18 面试题
2014年度党员自我评议
2014/09/13 职场文书
学习党章的体会
2014/11/07 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
介绍信范文大全
2015/05/07 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
前端实现滑动按钮AJAX与后端交互的示例代码
2022/02/24 Javascript
Python集合set()使用的方法详解
2022/03/18 Python
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers