[JAVASE] 类和对象(六) -- 接口(续篇)
目录
1.1 Comparable接口
1.2 compareTo方法的重写
1.2.1 根据年龄进行比较
1.2.2 根据姓名进行比较
1.4 compareTo 方法的使用
1.3 compareTo方法的缺点(重点)
二. Comparator接口 与 compare方法
2.1 Comparator接口
2.2 compare 方法的重写
2.2.1 根据年龄进行比较
2.2.2 根据姓名进行比较
2.3 比较器的使用(重要)
三. Cloneable 接口
四. 浅拷贝 与 深拷贝
4.1 浅拷贝
4.1.1 实现 Cloneable接口
4.1.2在实现类Person中重写 clone 方法
4.1.3 实现浅拷贝
4.2 深拷贝
4.2.1 实现Cloneable 接口
4.2.2 在实现类Money中重写clone方法
4.2.3 实现 深拷贝
4.3 检验
4.4 深浅拷贝的画图理解
五. 总结
一. Comparable接口 与 compareTo方法
1.1 Comparable接口
Comparable接口中只存在一个 compareTo 抽象方法.
public interface Comparable:
这是泛型, 之后会进行介绍.
public int compareTo(T o):
返回值是 int 型, 可以简单理解为(并不准确, 根据实际情况来比较数据)
this.数据 > o.数据, 返回 正整数.
this.数据 < o.数据, 返回 负整数.
this.数据 = o.数据, 返回0.
1.2 compareTo方法的重写
在实现类中重写 compareTo 抽象方法.
1.2.1 根据年龄进行比较
1.2.2 根据姓名进行比较
1.4 compareTo 方法的使用
直接通过对象的引用 来访问成员方法.
1.3 compareTo方法的缺点(重点)
可以发现, compareTo方法的使用相对固定,因为 调用者是通过直接调用compareTo方法来进行比较, 而不是通过传入比较器.从而导致无法在 调用方法的时候, 让使用者来决定 根据什么来进行比较.
接下来, 我们来解决这个问题.
二. Comparator接口 与 compare方法
让使用者决定 根据什么来进行比较.(传入比较器)
2.1 Comparator接口
Comparator接口中有多个抽象方法, 但是在实现类中只需要重写 compare 抽象方法.
(因为其他的抽象方法 在实现类中都会进行默认重写)(调用的是Object类中的equals方法)
以下是 C知道的回答: