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中重写父类方法加不加@Override详解
Jun 21 Java/Android
新手初学Java List 接口
Jul 07 Java/Android
Java后台生成图片的完整步骤
Aug 04 Java/Android
Java SSM配置文件案例详解
Aug 30 Java/Android
idea以任意顺序debug多线程程序的具体用法
Aug 30 Java/Android
Spring-cloud Config Server的3种配置方式
Sep 25 Java/Android
你知道Java Spring的两种事务吗
Mar 16 Java/Android
Spring Boot DevTools 全局配置学习指南
Mar 31 Java/Android
详解Flutter网络请求Dio库的使用及封装
Apr 14 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Java设计模式中的命令模式
Apr 28 Java/Android
使用Postman测试需要授权的接口问题
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
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
微信公众平台开发之天气预报功能
2015/08/31 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
jQuery事件 delegate()使用方法介绍
2012/10/30 Javascript
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
2013/03/01 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
jQuery结合AJAX之在页面滚动时从服务器加载数据
2015/06/30 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
jQuery使用模式窗口实现在主页面和子页面中互相传值的方法
2016/03/01 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
vue裁切预览组件功能的实现步骤
2018/05/04 Javascript
vscode+gulp轻松开发小程序的完整步骤
2020/10/18 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
[57:59]EG vs Secret 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
python2.7到3.x迁移指南
2018/02/01 Python
使用Python进行目录的对比方法
2018/11/01 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
Python将字符串常量转化为变量方法总结
2019/03/17 Python
OpenCV 模板匹配
2019/07/10 Python
python中count函数简单用法
2020/01/05 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
经济贸易系求职信
2014/08/04 职场文书
优秀党员个人总结
2015/02/14 职场文书
辞职书格式样本
2015/02/26 职场文书
2019年感恩励志演讲稿(收藏备用)
2019/09/11 职场文书
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js
Mysql开启外网访问
2022/05/15 MySQL