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 相关文章推荐
Springboot如何使用logback实现多环境配置?
Jun 16 Java/Android
详解Java实践之适配器模式
Jun 18 Java/Android
springboot如何初始化执行sql语句
Jun 22 Java/Android
SpringBoot读取Resource下文件的4种方法
Jul 02 Java/Android
spring cloud 配置中心native配置方式
Sep 25 Java/Android
OpenCV实现普通阈值
Nov 17 Java/Android
Java字符串逆序方法详情
Mar 21 Java/Android
spring注解 @PropertySource配置数据源全流程
Mar 25 Java/Android
Java GUI编程菜单组件实例详解
Apr 07 Java/Android
JAVA长虹键法之建造者Builder模式实现
Apr 10 Java/Android
Springboot-cli 开发脚手架,权限认证,附demo演示
Apr 28 Java/Android
Android studio 简单计算器的编写
May 20 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中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
javascript的原生方法获取数组中的最大(最小)值
2012/12/19 Javascript
解读JavaScript中 For, While与递归的用法
2013/05/07 Javascript
jQuery的remove()方法使用详解
2015/08/11 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
Vue的路由及路由钩子函数的实现
2019/07/02 Javascript
微信小程序用户拒绝授权的处理方法详解
2019/09/20 Javascript
[02:29]DOTA2英雄基础教程 陈
2013/12/17 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
[44:22]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第一场 11.01
2020/11/02 DOTA
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
深入浅出学习python装饰器
2017/09/29 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
详解Python用户登录接口的方法
2019/04/17 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
python新手学习使用库
2020/06/11 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
汉森冲浪板:Hansen Surfboards
2018/05/19 全球购物
个性发展自我评价
2014/02/11 职场文书
小学生暑假生活总结
2015/07/13 职场文书
2019年幼儿园管理条例范本!
2019/07/17 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
css样式important规则的正确使用方式
2022/06/10 HTML / CSS