type
status
date
slug
summary
tags
category
icon
password
Object类
概述 所有类的父类,所有类都会直接或者间接继承Obeject类
Object类中的toString方法
Object中tostring方法 返回改字符串表示形式public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } 注意如果没有重写Object中的toString方法直接输出对象名会默认调用Object中的toString方法,直接输出地址值如果重写Object中toString,在输出地址值,重写没有意义,所以重写完toString之后,应该返回对象的内容总结如果直接输出对象名不想输出地址值,就重写Object中toString方法
Object类中的equals方法
概述比较两个对象地址值是否想等public boolean equals(Object obj) { return (this == obj); } ==针对于基本数据类型来说,比较的是值==针对于引用数据类型来说,比较的是地址值总结如果没有重写object中的equals方法,那么就公谓用object中的equals方法,比较对象的地址值如果重写了object中的equals方法,那么就公调用重写后的equals方法,应该比较对象的内容
Object类中的clone方法
作用 复制一个属性值一样的新对象使用 需要被克隆对象实现Cloneable重写clone方法
经典接口
java.lang.Comparable
我们知道基本数据类型的数据(除boolea类型外)需要比较大小的话,之间使用比较运算符即可,但是引用数据 类型是不能直接使用比较运算符来比较大小的。那么,如何解决这个问题呢? Java给所有引用数据类型的大小比较,指定了一个标准接口,就是java.lang.Comparable接口:那么我们想要使得我们某个类的对象可以比较大小,怎么做呢?步骤:
- 第一步:哪个类的对象要比较大小,哪个类就实现java.lang.Comparable接口,并重写方法
- 方法体就是你要如何比较当前对象和指定的另一个对象的大小
- 第二步:对象比较大小时,通过对象调用compareTo方法,根据方法的返回值决定谁大谁小。
- this对象(调用compareTo方法的对象)减指定对象(传入compareTo()的参数对象)大于0,返回正整数
- this对象(调用ompareTo方法的对象)减指定对象(传入compare To()的参数对象)小于0返回负整数
- this对象(调用compareTo方法的对象)减指定对象(传入compareTo(的参数对象)等于0返回零
代码示例java.util.Comparator
:thinking:
- 如果一个类,没有实现Comparablef接口,而这个类你又不方便修改(例如:一些第三方的类,你只有。class文件,没有源文件),那么这样类的对象也要比较大小怎么办?
- 如果一个类,实现了Comparable接口,也指定了两个对象的比较大小的规则,但是此时此刻我不想按照它预定义的方法比较大小,但是我又不能随意修改,因为会影响其他地方的使用,怎么办?
JDK在设计类库之初,也考虑到这种情况了,所以又增加了一个java.util.Comparator接口。那么我们想要比较某个类的两个对象的大小,怎么做呢?步骤:
- 第一步:编写一个类,我们称之为比较器类型,实现java.util.Comparator接口,并重写方法
- 方法体就是你要如何指定的两个对象的大小
- 第二步:比较大小时,通过比较器类型的对象调用compare0方法,将要比较大小的两个对象作为compare方法的实参传入,根据方法的返回值决定谁大谁小。
- o1对象减o2大于0返回正整数
- o1对象减o2小于0返回负整数
- o1对象减o2等于0返回零
- 作者:NotionNext
- 链接:https://tangly1024.com/article/1c4db897-8f81-80ff-b8c7-e7ba2cf3263f
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。






