> 技术文档 > [JAVASE] 类和对象(六) -- 接口(续篇)

[JAVASE] 类和对象(六) -- 接口(续篇)

目录

一. Comparable接口 与 compareTo方法

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知道的回答: