Object类toString()和equals()方法剖析
Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。所有类在创建对象的时候,最终找的父类就是Object。
toString()方法
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。
/** String toString() : 返回该对象的字符串表示* return getClass().getName() + "@" + Integer.toHexString(hashCode());* getClass():返回一个字节码对象* Integer.toHexString():返回指定参数的十六进制字符串形式* hashCode():返回该对象的哈希码值(内部地址)* boolean equals(Object obj) * */
public class ObjectDemo {public static void main(String[] args) {Student s = new Student();s.name = "zhangsan";s.age = 18;System.out.println(s.toString());//com.zhangxueliang.Student@737951b0System.out.println(s);//说明我们输出一个对象就是默认输出这个对象的toString()方法}
}class Student extends Object {String name;int age;/*public String toString() {return name + "@" + age;}*/@Overridepublic String toString() {return "Student [name=" + name + ", age=" + age + "]";}}
equals()方法
equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符。
在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。
/** boolean equals(Object obj) * 使用==来比较两个对象是否相等,则比较地址值是否相等*/
public class ObjectDemo2 {public static void main(String[] args) {Person p = new Person("zhangsan",18);Person p2 = new Person("zhangsan",19);//boolean flag = p.equals(p2);boolean flag = p.equals(new ArrayList());System.out.println(flag);}
}class Person {String name;int age;public Person(String name,int age) {this.name = name;this.age = age;}@Overridepublic boolean equals(Object obj) {//提高效率if (this == obj)return true;if (obj == null)return false;//提高健壮性if (getClass() != obj.getClass())return false;//向下转型Person other = (Person) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}/*@Overridepublic boolean equals(Object o) {//提高效率 当前对象和传递进来的对象地址值一样,则不用比较成员if(this == o) {return true;}//提高代码的健壮性if(this.getClass() != o.getClass()) {return false;}//向下转型Person other = (Person) o;if(!this.name.equals(other.name)) {return false;}if(this.age != other.age) {return false;}return true;}*/
}
Object类toString()和equals()方法剖析相关推荐
- JAVA进阶教学之(Object类中的equals方法)
public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...
- String类中的equals方法与Object类中的equals方法的不同点
1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...
- 重写Java Object类中的equals()方法
Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...
- JAVA入门级教学之(Object类中的equals方法)
package com.lbj.javase18; /** * 关于Object中的equals方法: * * Object中的equals方法(核心): * public boolean ...
- object类中的equals与自定义equals方法详解
object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...
- Object类中常见的方法
一.Object类中的toString()方法 1. object 默认方法 toString方法,toString() 输出一个对象的地址字符串(哈希code码)! 2.可以通过重写toString ...
- python中的object是什么意思_Python object类中的特殊方法代码讲解
python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...
- 【python object类及其内置方法】
1. object类 object类所有类的父类,默认所有的类都继承至object类 当我们定义一个类,没有指定他的父类时,它默认就是继承了object类 例如 class Student:pass ...
- Java面向对象之object类自带的方法解析(equals与==、toString方法、instanceof方法、参数传递问题)
一.equals与== 1.简单说明 ==:是用来判断两个变量.对象是否相等(数值.内存地址): equals:用来判断两个对象是否相等,可以通过自己重写equals方法的逻辑,使其从类的从很多个角度 ...
最新文章
- esp32 camera_利用Phyphox和ESP32蓝牙制作欧姆表测电阻
- ContentType 列表
- Kubernetes1.13.1部署Kuberneted-dashboard v1.10.1
- mqtt判断设备是否在线_如何在 Python 中使用 MQTT
- springboot启动时报错:Failed to load property source from location 'classpath:/application.yml'
- 无限分级和tree结构数据增删改【提供Demo下载】
- 2021-04-03
- thinkphp 文件下载实例 实现以及注意事项
- 免费正版 Win 10/8/7操作系统虚拟机镜像下载
- 《Python黑帽子:黑客与渗透测试编程之道》的学习笔记
- redo日志和undo日志
- 如何找python 包的位置
- 如何判断一个PCIe的capability是哪个capability
- jeecms导入myeclipse时web-inf下html出错,jeecms myeclipse
- 01-选择属于自己的相机
- 什么是CSS3,CSS3能做什么?
- java放大缩小_如何用Java实现图形的放大和缩小?
- 2022年软考可以参加哪些科目考试?熟知
- 【modlearts】华为人工智能平台_modelarts平台系列教程3_预置算法_语音处理3
- Soul源码学习(一)——soul原理及环境搭建