Java编程:从对象比较到接口设计的全面解析
1. 对象比较与排序
在Java中,当比较两个圆时,首先比较它们的x和y坐标。若x和y坐标相同,则比较半径,半径较小的圆更小。 compareTo()
方法用于定义这种顺序,其返回值规则如下:
- 若当前对象小于传入对象,返回负数。
- 若两个对象相等,返回0。
- 若当前对象大于传入对象,返回正数。
这种排序与 equals()
方法定义的相等性是一致的,虽非严格要求,但应尽量遵循。
2. 克隆方法
Object
类的 clone()
方法用于返回一个与当前对象字段相同的新对象。不过,该方法有一些特殊之处:
- clone()
方法被声明为 protected
,若要让其他类能克隆对象,需将其重写为 public
。
- 默认实现会抛出 CloneNotSupportedException
,除非类实现了 java.lang.Cloneable
接口(这是一个标记接口,无具体方法)。
由于 clone()
方法存在缺陷,不建议使用,建议使用复制构造函数来复制对象,示例代码如下:
Circle original = new Circle(1, 2, 3); // 常规构