广告
返回顶部
首页 > 资讯 > 后端开发 > Python >你了解Java中的Object类吗
  • 467
分享到

你了解Java中的Object类吗

2024-04-02 19:04:59 467人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

任何一个类默认继承Object类,就算没有直接继承,最终也会间接继承。 Object类,有两种方式找到: 第一种:在源码当中找到 第二种:查阅java类库的帮助文档

任何一个类默认继承Object类,就算没有直接继承,最终也会间接继承。

Object类,有两种方式找到:

  1. 第一种:在源码当中找到
  2. 第二种:查阅java类库的帮助文档

Object类中两个重要的方法:

  1. boolean equals (Object obj) //判断两个对象是否相等
  2. String toString () //将对象转换成字符串形式

equals方法:

源代码:


public boolean equals(Object obj) {
        return (this == obj);
    }

作用:通过调用这个方法可以判断两个对象是否相等


class MyTime {
	int year;
	int month;
	int day;
 
	public MyTime() {
		super();
	}
 
	public MyTime(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}
}

public class Test02 {
	public static void main(String args[]) {
		// 判断两个基本数据类型的数据是否相等,,直接使用”==“就行
		int a = 100;
		int b = 100;
		// 这个等号判断的是a中保存的100和b中保存的100是否相等
		System.out.println(a == b);// true(相等) false(不相等) 结果为true
 
		MyTime t1 = new MyTime(2021, 9, 15);
		MyTime t2 = new MyTime(2021, 9, 15);
		// 这个等号判断的是t1保存的对象的内存地址和t2保存的对象的内存地址是否相等
		System.out.println(t1 == t2);// 结果为false
	}
}

        // 重写Object的equals方法之前(比较的是内存地址)
		boolean s = t1.equals(t2);
		System.out.println(s);// 结果为false

判断两个对象是否相等不能用“==”,因为”==“判断的是两个对象的内存地址,然而在Object类中的equals方法当中,默认采用的是”==“判断两个java对象是否相等。而”==“判断的是两个java对象的内存地址是否相等,我们应该判断的是两个java对象的内容是否相等,equals方法无法满足,需要子类重写equals。


public boolean equals(Object obj) {
		// 当年月日都分别相等时,表示两个日期相同
		// 获取第一个日期的年月日
		int year1 = this.year;
		int month1 = this.month;
		int day1 = this.day;
		// 获取第二个日期的年月日
		if (obj instanceof MyTime) {
			MyTime t = (MyTime) obj;
			int year2 = t.year;
			int month2 = t.month;
			int day2 = t.day;
			if (year1 == year2 && month1 == month2 && day1 == day2) {
				return true;
			}
		}
		return false;
	}

// 重写Object的equals方法之后(比较的是内容)
		boolean t = t1.equals(t2);
		System.out.println(s);// 结果为true

toString方法:

源代码:


public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

源代码上toString方法的默认实现:类名@对象的内存地址转换为十六进制的形式。

作用:通过调用这个方法可以将一个“Java对象”转换成“字符串形式的表示形式“。(建议所有子类都重写此方法)


class MyTime {
	int year;
	int month;
	int day;
 
	public MyTime() {
		super();
	}
 
	public MyTime(int year, int month, int day) {
		super();
		this.year = year;
		this.month = month;
		this.day = day;
	}
 
	@Override
	public String toString() {
		return "MyTime [year=" + year + ", month=" + month + ", day=" + day + "]";
	}
 
}

public class Test01 {
	public static void main(String args[]) {
		MyTime t1 = new MyTime(2021, 9, 15);
		String s1 = t1.toString();
		// MyTime类重写toString方法之前
		System.out.println(s1);// com.MyTime@15db9742
		// MyTime类重写toString方法之后
		System.out.println(s1);// MyTime [year=2021, month=9, day=15]
 
	}
}

注:输出引用时,会自动调用toString方法,即s1等同于s1.toString()。

到此这篇关于你了解Java中的Object类吗 的文章就介绍到这了,更多相关Java Object类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 你了解Java中的Object类吗

本文链接: https://www.lsjlt.com/news/135949.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 你了解Java中的Object类吗
    任何一个类默认继承Object类,就算没有直接继承,最终也会间接继承。 Object类,有两种方式找到: 第一种:在源码当中找到 第二种:查阅java类库的帮助文档...
    99+
    2022-11-12
  • 关于Java Object你真的了解了吗
    导读: 在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我...
    99+
    2023-05-31
    java object ava
  • Java中的内部类你了解吗
    目录成员内部类1.定义2.成员内部类的使用规则 3.成员内部类对象的创建:4.内部类与静态域静态内部类:1.定义:2.静态内部类的使用规则:3.静态内部类对象的创建&nbs...
    99+
    2022-11-13
  • Java中的抽象类和接口你了解吗
    目录抽象类什么是抽象类?抽象类属于什么类型?抽象类怎么定义?抽象类是干什么的?什么是抽象方法?非抽象类继承抽象类抽象类总结接口接口的基础语法接口的实现接口和多态联合使用继承和实现同时...
    99+
    2022-11-13
  • 一文带你了解Java万物之基之Object类
    目录native方法getClass方法hashCode方法equals方法==和equals的区别clone方法浅拷贝和深拷贝toString方法线程方法finalize方法Jav...
    99+
    2022-11-13
  • 了解java中对象基础Object类
    目录一、Object简述1、显式扩展2、引用与对象二、基础方法1、getClass2、toString3、equals与hashCode4、thread相关5、clone6、fina...
    99+
    2022-11-12
  • TypeScript中的函数和类你了解吗
    目录函数作为参数定义函数函数参数的类型可选类型参数默认值剩余参数this的默认推导函数重载类初始化继承多态成员修饰符总结函数 以下声明了一个函数类型,通过type来定义类型别名,vo...
    99+
    2022-11-13
  • 一篇文章带你了解java Object根类中关于toString,equals的方法
    目录toString:代码案例:equals:代码案例:总结toString: 概念:拼接对象的地址值;toString()方法用于返回表示对象值的字符串(返回的是String对象)...
    99+
    2022-11-12
  • python3中的类继承你真的了解吗
    目录(1)首先使用直接继承的方式(2)在子类中定义属性(3)如果想要继承父类中的属性,一般使用super方法:(4)如果需要在子类的__init__中传入参数则可以这样使用:&nbs...
    99+
    2022-11-13
  • PHP编程中的数据类型:你了解了吗?
    在PHP编程中,数据类型是非常重要的一部分。正确使用数据类型可以提高程序的效率和可读性,避免不必要的错误和问题。本文将介绍PHP中常见的数据类型,并演示一些代码来帮助你更好地理解它们。 基本数据类型 PHP中的基本数据类型包括整型(i...
    99+
    2023-09-10
    编程算法 学习笔记 数据类型
  • 你了解ASP中的HTTP数据类型吗?
    ASP(Active Server Pages)是一种基于服务器端的脚本语言,它可以用来构建动态网站。在ASP中,HTTP数据类型是非常重要的一个概念。本文将为大家详细介绍ASP中的HTTP数据类型。 一、HTTP数据类型概述 HTTP(H...
    99+
    2023-08-11
    数据类型 http 自然语言处理
  • C++中类的转换函数你了解吗
    只有接受一个参数(其他参数有默认值的也算)的构造函数才能作为转换构造函数。 在C++中,接受一个参数的构造函数为将类型与该参数相同的值转换为类提供了蓝图。因此,下面的构造函数用于将d...
    99+
    2022-11-13
  • Java tomcat中的类加载器和安全机制你了解吗
    目录类加载器双亲委派URLClassLoaderTomcat中类加载器架构安全机制总结类加载器 java中的类并不是一次加载完成的,而是按需加载。类加载器是用于加载java类到jav...
    99+
    2022-11-12
  • 你了解Spring框架中的数据类型吗?
    Spring框架是一个非常流行的Java开发框架,它提供了很多便捷的功能,包括数据类型的处理。在这篇文章中,我们将介绍Spring框架中的数据类型,并提供一些示例代码。 基本数据类型 Spring框架中支持Java的基本数据类型,包括i...
    99+
    2023-08-19
    数据类型 spring windows
  • JAVA代码块你了解吗
    目录非静态代码块:没有static修饰的代码块静态代码块:用static修饰的代码块用处总结非静态代码块:没有static修饰的代码块 可以有输出语句 可以对类的属...
    99+
    2022-11-12
  • java的泛型你真的了解吗
    目录泛型的概述和优势自定义泛型类自定义泛型方法自定义泛型接口泛型通配符、上下限总结泛型的概述和优势 泛型概述 泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检...
    99+
    2022-11-13
  • 详解Java中Object 类的使用
    目录Object 类提供的方法方法实例clone() 方法equals() 方法finalize() 方法getClass() 方法hashCode() 方法wait() 方法not...
    99+
    2023-05-19
    Java Object 类使用 Java Object 类用法 Java Object 类
  • 你了解Java教程中的HTTP协议吗?
    Java作为一种高级编程语言,广泛应用于各种应用程序的开发。而HTTP协议则是Java教程中必不可少的一部分。本文将介绍HTTP协议在Java教程中的应用,并为读者演示HTTP协议相关的代码。 HTTP协议是一种网络协议,它负责在Web服务...
    99+
    2023-06-17
    教程 http 自然语言处理
  • Java中的static--静态变量你了解吗
    目录引言引言什么时候使用静态变量?小总结引用访问静态变量小总结总结引言 static 是 java 语言中的关键字,意思是“静态的”,它可以用来修饰变量、方法、代码块等,修饰的变量叫...
    99+
    2022-11-12
  • Java编程中的Path类:你了解它的所有应用场景吗?
    在Java编程中,Path类是一个非常重要的类,它用来表示文件或目录的路径。Path类提供了许多方法来操作文件系统中的路径,包括路径的解析、规范化、比较、转换等等。在本文中,我们将深入探讨Path类的所有应用场景,并演示一些实际的代码示例...
    99+
    2023-07-29
    编程算法 异步编程 path
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作