object类的一些方法

news2025/1/12 21:10:34

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

Object类

输出对象地址

object类里的tostring方法:

正确输出对象里内容

判断俩个对象大小:

object类里的equlas方法:

自己实现一个equals来比较内容是否相同

总结:



前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考


Object类

Object类是所有类的祖先,一切类默认继承object

输出对象地址

一.object类里的tostring方法:

package 接口;
//object类
class ePerson{
    public String name="hello";

    @Override
    public String toString() {
        return "ePerson{" +
                "name='" + name + '\'' +
                '}';
    }
}
class eStudent{

}
public class Text5 {
    public static void func(Object o){
        System.out.println(o.toString());
    }
    public static void main(String[] args) {
//        Object o=new Object();
        ePerson e=new ePerson();
//        func(o);
        func(e);
    }

}

如果不重写tostring输出:java.lang.Object@776ec8df,这是object默认的tostring方法

正确输出对象里内容

重写输出:ePerson{name='hello'},这是自己实现的tostring方法(方法重写)

判断俩个对象大小:

ePerson类:

class ePerson{
    public String id;

    public ePerson(String id) {
        this.id = id;
    }

    @Override
    public String toString() {
        return "ePerson{" +
                "id='" + id + '\'' +
                '}';
    }
}

直接==比较:

 public static void main(String[] args) {
        ePerson person1=new ePerson("123");
        ePerson person2=new ePerson("123");
        System.out.println(person1 == person2);
    }

这时输出false,为啥不是true呢,对象不同(地址不同)person1,person引用的地址不同

 这时我们如果直接调用object类中equals呢?

二.object类里的equlas方法:

如果直接调用object类中equals发现:

 还是比较地址类似于==

自己实现一个equals来比较内容是否相同

1.在eperson类重写equals方法

   @Override
    public boolean equals(Object o) {
      ePerson tmp=(ePerson) o;
      return this.id.equals(tmp.id);
    }

注意,id是string类型,string也重写了equals方法,返回的equals是string写好的equals来比较内容相同

2.在test中调用equals

System.out.println(person1.equals(person2));

此时返回true

此时自己实现的还有缺陷(忽略了特殊情况),这个比较完整:

 @Override
    public boolean equals(Object o) {
        if(o==null){
            return false;
        }
       else if(this==o){
            return true;
        }
       else if(!(o instanceof ePerson){
           return false;
        }
      ePerson tmp=(ePerson) o;
      return this.id.equals(tmp.id);
    }

解释一下:

总结:

object类equals是判断对象内容是否相同

一般自定义的类型都得重写equals方法,来判断内容相同

如果==左右两侧是引用类型变量,比较的是引用变量地址是否相同

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/19572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringCloud - 微服务理论基础

文章目录1.微服务架构1.1 什么是微服务1.2 Spring Cloud 简介1.3 Spring Cloud 技术栈2.Boot 和 Cloud 版本选型3.Cloud 服务升级1.微服务架构 1.1 什么是微服务 微服务架构是一种架构模式,它提倡单一应用程序划分成一组小的服务,服务直接相互协调、相互…

Python PyInstaller 打包成 Win、Mac 应用程序(app / exe)

一、简介 python 提供了几个用来打包的模块,主要有 py2app、py2exe、pyinstaller。附:pyinstaller、py2app、py2exe、fbs 对比与爬坑。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-whT6cPog-1668880648443)(https://p1-jue…

(续)SSM整合之springmvc笔记(RESTful之HiddenHttpMethodFilter源码解析)(P147)了解

RESTful之HiddenHttpMethodFilter源码解析 由于浏览器只支持发送get和post方式的请求,那么该如何发送put和delete请求呢? SpringMVC 提供了 HiddenHttpMethodFilter 帮助我们将POST 请求转换为DELETE 或PUT 请求 HiddenHttpMethodFilter 处理put和delete…

java计算机毕业设计ssm陕理工图书馆管理系统

项目介绍 随着互联网技术的发发展,计算机技术广泛应用在人们的生活中,逐渐成为日常工作、生活不可或缺的工具,高校各种管理系统层出不穷。高校作为学习知识和技术的高等学府,信息技术更加的成熟,为高校图书馆借阅开发必要的系统,能够有效的提升管理效率。一直以来,高校图书馆一…

Docker搭建Redis集群

Docker搭建Redis集群 注意:Redis搭建集群最少需要6个Redis节点,其中3个作为主节点,3个作为从节点; 为了方便,这里用Docker在一台机器上启动6个容器来作为集群,生产上建议用多台服务器搭建; 创建…

4.1.3 名称的特殊处理

名称的特殊处理 类成员变量的名称处理: 对于类的数据成员,其的名称经过编译器的处理会在程序员定义名称的后面再加上class的名称,进而形成独一无二的命名,例如下面的的成员变量x再经过类处理后有可能为x_7Point3d。 class Point…

Linux之手把手教你捋清楚make和makefile

文章目录背景简单介绍make和makefile依赖关系和依赖方法项目清理以及伪目标背景 以往的C语言编程,我们一般都在一些像VS2019这样的集成开发环境(IDE)下编写,一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中&#xff0…

Spring框架的概述及基本应用

Spring的基本应用 文章目录Spring的基本应用1. Spring 概述1.1 什么是Spring1.2 Spring 框架的优点1.3 Spring的体系结构2. Spring的核心容器2.1 BeanFactory2.2 ApplicationContext3. Spring的入门程序3.1 在pom下利用maven导入Spring所需要的jar包3.2 简单搭建起demo结构3.3 …

Java中数组的定义与使用(Java系列3)

目录 前言: 1.什么是数组 2.数组的创建 3.数组的初始化 4.数组的使用 5.数组是引用类型 6.基本类型变量与引用类型变量的区别 7.数组的应用 8.二维数组 结束语: 前言: 前面小编与大家分享了C语言与Java中的区别,还有一…

leaflet教程041: Point 和 LatLng 坐标互相转换

第041个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中使用Point和LatLng,这里做了两者之间的转换。 注意 两者转换后的值,返回相对于原点像素的相应像素坐标或经纬度坐标。zoom改变,原点(地图图层左上角的投影像素坐标)的值会改变,所以获得的值也会变化。…

51单片机学习笔记1 简介及开发环境

51单片机学习笔记1 简介及开发环境一、51单片机1. STC89C52单片机简介2. 命名规则3. 封装(1)PDIP(2)LQFP(3)PLCC(4)PQFP二、STC8051结构1. STC 8051 内部结构图2. 内部结构框图3. 单…

Android设置TabLayout熟悉及下划线宽度

Tablayout的使用 属性 app:tabMod 设置Tab模式 app:tabTextColor 设置文本颜色 app:tabSelectedTextColor 设置选中文本颜色 app:tabIndicatorColor 设置下滑条颜色 app:tabMaxWidth“xxdp” 设置最大的tab宽度 app:tabMinWidth“xxdp” 设置…

牛客网之SQL100题(7)-字符串截取、切割、删除、替换

知识点: (1)substring_indexsubstring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 (2)切割、截取、删除、替换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 select -- 替换法 replace(string, 被…

类型转换C11

类型转换 C类型转换分为显式类型转换和隐式类型转换 ,隐式类型转换由编译器自动完成,这里只讨论显式类型转换。 旧式风格的类型转换 type(expr); // 函数形式的强制类型转换 (type)expr; // C语言风格的强制类型转换现代C风格的类型转换 cast-name&l…

1-2 VMware安装Rocky9.0和Ubuntu22.04系统

文章目录前言下载链接VMware使用安装Rocky9.0系统Rocky初始化安装Ubuntu22.04系统Ubuntu初始化VMware快照前言 VMware虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。 Rocky Linux 9.0 操作系统与2022年7月14…

基于matlab GUI的数字图像处理系统

目 录 摘 要 I Abstract II 第1章 绪论 1 1.1选题背景及意义 1 1.2国内外研究现状 2 1.2.1国内研究现状 2 1.2.2国外研究现状 3 1.3研究主要内容 3 第2章 数字图像处理系统设计 5 2.1设计概括 5 2.2文件 6 2.2.1打开 6 2.2.2保存 6 2.2.3退出 6 2.3图像变形 7 2.3.1图像缩放 7 …

Spring Cloud Gateway 使用示例

Spring Cloud Gateway 使用示例 作者: Grey 原文地址: 博客园:Spring Cloud Gateway 使用示例 CSDN:Spring Cloud Gateway 使用示例 说明 Spring Cloud Gateway 用于构建 API 网关,基于 Spring WebFlux。 在Spr…

【雷达通信】回波数据处理(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

【VRP问题】基于蚁群算法求解配送路径最短问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

静态成员函数与回调函数

1. 静态成员函数 1.1 静态成员函数调用 如何代码块里的函数get_object_count是静态成员函数,对静态成员函数无论是通过类名还是通过对象或对象指针调用,最终都会被编译器转换为全局非成员函数的调用。例如obj.get_object_count()或Point3d::get_object…