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中一些比较常用的注解总结
Jun 11 Java/Android
总结Java对象被序列化的两种方法
Jun 30 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
SpringBoot整合RabbitMQ的5种模式实战
Aug 02 Java/Android
java调用Restful接口的三种方法
Aug 23 Java/Android
java如何实现socket连接方法封装
Sep 25 Java/Android
Java8中Stream的一些神操作
Nov 02 Java/Android
深入解读Java三大集合之map list set的用法
Nov 11 Java/Android
JavaWeb Servlet开发注册页面实例
Apr 11 Java/Android
Java数组详细介绍及相关工具类
Apr 14 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
java版 简单三子棋游戏
May 04 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遍历目录并返回统计目录大小
2014/06/09 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
FormValid0.5版本发布,带ajax自定义验证例子
2007/08/17 Javascript
JavaScript 学习点滴记录
2009/04/24 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
javascript处理表单示例(javascript提交表单)
2014/04/28 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
在Django的模型中添加自定义方法的示例
2015/07/21 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Python多线程扫描端口代码示例
2018/02/09 Python
Python requests库用法实例详解
2018/08/14 Python
python可迭代对象去重实例
2020/05/15 Python
什么是java序列化,如何实现java序列化
2012/11/14 面试题
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
广告设计专业自荐信范文
2013/11/14 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
股东合作协议书
2014/09/12 职场文书
5.12护士节活动总结
2015/02/10 职场文书
2015年药店工作总结
2015/04/20 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
matplotlib画混淆矩阵与正确率曲线的实例代码
2021/06/01 Python
关于python类SortedList详解
2021/09/04 Python