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
Feign调用传输文件异常的解决
Jun 24 Java/Android
Java常用工具类汇总 附示例代码
Jun 26 Java/Android
mybatis 解决从列名到属性名的自动映射失败问题
Jun 30 Java/Android
spring cloud 配置中心native配置方式
Sep 25 Java/Android
Java8中接口的新特性使用指南
Nov 01 Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 Java/Android
Java实战之课程信息管理系统的实现
Apr 01 Java/Android
Android Studio 计算器开发
May 20 Java/Android
MyBatis在注解上使用动态SQL方式(@select使用if)
Jul 07 Java/Android
Java代码规范与质量检测插件SonarLint的使用
Aug 05 Java/Android
Java获取字符串编码格式实现思路
Sep 23 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/13 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
PHP如何解决微信文章图片防盗链
2020/12/09 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
js实例属性和原型属性示例详解
2014/11/23 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
js实现各种复制到剪贴板的方法(分享)
2016/10/27 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
2018/08/28 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
十分钟教你上手ES2020新特性
2020/02/12 Javascript
解决vue-router 嵌套路由没反应的问题
2020/09/22 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Python 调用Java实例详解
2017/06/02 Python
python中map()函数的使用方法示例
2017/09/29 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
Django中使用Celery的教程详解
2018/08/24 Python
postman模拟访问具有Session的post请求方法
2019/07/15 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
python socket 聊天室实例代码详解
2019/11/14 Python
Pytorch 之修改Tensor部分值方式
2019/12/27 Python
HTML5的结构和语义(5):内嵌媒体
2008/10/17 HTML / CSS
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
事业单位考察材料范文
2014/12/25 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
导游词之崇武古城
2019/10/07 职场文书
导游词之山西-五老峰
2019/10/07 职场文书