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()方法剖析相关推荐

  1. JAVA进阶教学之(Object类中的equals方法)

    public boolean equals(Object obj){return (this == obj); } 原始equals方法是判断两个对象的内存地址是否相等的(内存地址相等,保存的值也相等 ...

  2. String类中的equals方法与Object类中的equals方法的不同点

    1.首先我们看看Object类中的equals方法 public boolean equals(Object obj) {return (this == obj);} 我们可以看出Object类中判断 ...

  3. 重写Java Object类中的equals()方法

    Java中的Object类中的equals方法 Object类的equals方法 重写Object类的equals()方法 Person类默认继承了Object类,所以可以使用Object类的equa ...

  4. JAVA入门级教学之(Object类中的equals方法)

    package com.lbj.javase18; /**  * 关于Object中的equals方法:  *   * Object中的equals方法(核心):  *  public boolean ...

  5. object类中的equals与自定义equals方法详解

    object类中的equals与自定义equal方法详解 1.this怎么理解?this == obj表示什么? this就是当前你new出来的对象,这里指谁调用equal方法this指的就是谁,ob ...

  6. Object类中常见的方法

    一.Object类中的toString()方法 1. object 默认方法 toString方法,toString() 输出一个对象的地址字符串(哈希code码)! 2.可以通过重写toString ...

  7. python中的object是什么意思_Python object类中的特殊方法代码讲解

    python版本:3.8class object: """ The most base type """ # del obj.xxx或del ...

  8. 【python object类及其内置方法】

    1. object类 object类所有类的父类,默认所有的类都继承至object类 当我们定义一个类,没有指定他的父类时,它默认就是继承了object类 例如 class Student:pass ...

  9. Java面向对象之object类自带的方法解析(equals与==、toString方法、instanceof方法、参数传递问题)

    一.equals与== 1.简单说明 ==:是用来判断两个变量.对象是否相等(数值.内存地址): equals:用来判断两个对象是否相等,可以通过自己重写equals方法的逻辑,使其从类的从很多个角度 ...

最新文章

  1. esp32 camera_利用Phyphox和ESP32蓝牙制作欧姆表测电阻
  2. ContentType 列表
  3. Kubernetes1.13.1部署Kuberneted-dashboard v1.10.1
  4. mqtt判断设备是否在线_如何在 Python 中使用 MQTT
  5. springboot启动时报错:Failed to load property source from location 'classpath:/application.yml'
  6. 无限分级和tree结构数据增删改【提供Demo下载】
  7. 2021-04-03
  8. thinkphp 文件下载实例 实现以及注意事项
  9. 免费正版 Win 10/8/7操作系统虚拟机镜像下载
  10. 《Python黑帽子:黑客与渗透测试编程之道》的学习笔记
  11. redo日志和undo日志
  12. 如何找python 包的位置
  13. 如何判断一个PCIe的capability是哪个capability
  14. jeecms导入myeclipse时web-inf下html出错,jeecms myeclipse
  15. 01-选择属于自己的相机
  16. 什么是CSS3,CSS3能做什么?
  17. java放大缩小_如何用Java实现图形的放大和缩小?
  18. 2022年软考可以参加哪些科目考试?熟知
  19. 【modlearts】华为人工智能平台_modelarts平台系列教程3_预置算法_语音处理3
  20. Soul源码学习(一)——soul原理及环境搭建

热门文章

  1. 【论文写作】轻松搞掂IEEE系列期刊的文章模板
  2. 找对象困难?不如让AI算法来帮你
  3. 技术干货 | 高性能短链设计与实现
  4. 全国高校MINI开发挑战赛结果出炉,99年的他们为什么能赢?
  5. 小议WebRTC拥塞控制算法:GCC介绍
  6. 年轻群体当道,哈弗F7如何赢得芳心?
  7. Win10修改防火墙入站规则
  8. Spring IOC 容器源码分析系列文章导读 1
  9. Linux宝塔面板介绍 Centos安装宝塔面板教程
  10. 在远程桌面在目标主机与客户机复制文件?