当前位置: 首页 > news >正文

Java复习-17-Object类

Object 类

  1. 功能:可以解决参数的统一问题
  2. 特点:Java中所有的类型都是 Object 类的子类(包括自定义的类)。
  3. 运用:如果一个程序的方法要求可以接收所有类的对象的时候就可以利用 Object 实现处理。

toString() 方法

可以获取一个对象的完整信息,而进行对象直接输出的时候所调用的方法就是 toString()方法,所以调用与否实现是一样的。
可以在以后的开发中对象信息的获得可以直接覆写此方法。

Class Person {private String name;private int age;public Person(String name ,int age) {this .name = name;this .age = age ;}@overridepublic string tostring() {return "姓名:" + this.name + "、年龄:" + this.age ;}
}public class JavaDemo{public static void main(string args[]){Person per = new Person("张三",20);System.out.println(per); // 直接输出对象,而不再需要调用一个 getInfo() 方法}
}

对象比较 equals()

Object 类作为所有类的父类,提供了对象比较操作的支持。其在源码中的定义,即默认情况下,该方法只是进行了两个对象的地址判断(如下)。

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

故,对于实际的使用者而言,要想实现正确的判断处理,就要在子类中覆写该方法。先前所说的字符串的比较本质上就是继承并且覆写了Object的这个方法。自定义类的比较如下:

// equals()方法这个时候会有两个对象: 当前对象this、传入的object
public boolean equals (Object obj) {if (!(ovj instanceof Person)){ // 同一类才进行比较return false ;}if (obj == null){ // 不关心null的比较return false ;}if (this == obj){ // 同一个地址return true ;}Person per = (Person) obj ; //目的是为了获取类中的属性return this.name.equals(per.name) && this.age == per.age;
}

实际开发应用

  • 自定义类的对象信息需要答应时,可以覆写 Object 类的toString()方法。
  • 自定义类的对象之间进行内容的比较时,覆写 Object 类的equals()方法。
http://www.lryc.cn/news/143564.html

相关文章:

  • 数据结构--树4.2.4(树、森林即二叉树的相互转换(仅供参考))
  • MyBatis-Plus 总结
  • 【CSS】轮播图案例开发 ( 基本设置 | 子绝父相 | 浏览器水平居中 | 圆角设置 | 绝对定位居中设置 )
  • leetcode做题笔记111. 二叉树的最小深度
  • ubuntu安装Google Chrome 浏览器和ChromeDriver
  • 猫头虎博主赠书一期:《Kubernetes原生微服务开发》
  • QtC++ 设计模式(四)——策略模式
  • LVS集群和分布式概念
  • javafx应用程序线程异常Exception in thread “JavaFx Application Thread“
  • 大漠插件7.2336
  • 5年测试,面试结束后被HR发朋友圈怼了..(心塞)
  • 基于相空间重构的混沌背景下微弱信号检测算法matlab仿真,对比SVM,PSO-SVM以及GA-PSO-SVM
  • 开发者必备:推荐将闲置iPad Pro打造为编程工具,使用VS Code编写代码
  • c++,标准库std中全局函数 _Destroy_in_place(...)的分析
  • java:Tomcat
  • US-P2F-R-C双线圈插头式比例阀放大器
  • clickhouse一次异常排查记录
  • Python 数据可视化:玩转 Matplotlib 的散点图、线形图、饼图和热力图
  • 基于python+pyqt实现opencv银行卡身份证等识别
  • 惠普台式机装系统记录
  • java八股文面试[JVM]——垃圾回收
  • iOS开发Swift-控制流
  • leetcode875. 爱吃香蕉的珂珂(java)
  • LeetCode-406-根据身高重建队列
  • JVM——类加载与字节码技术—编译期处理+类加载阶段
  • C#|如何调试进依赖动态库中
  • 全新版本QStack云管系统3.5.3 附详细安装教程
  • SLB 负载均衡
  • 多核调度预备知识
  • 什么是Git?解释Git的分布式版本控制系统的优势?