/* * 練習問題4.2 p.114 * 99頁の練習問題3.12の回答を、最初にインタフェースを使用して書いていなければ、 * インタフェースを使用して書き直しなさい。 */ package ch04.ex04_02; final class SortMetrics implements Cloneable { public long probeCnt, // 単純なデータの値調査 compareCnt, // 2つの要素の比較 swapCnt; // 2つの要素の交換 public void init() { probeCnt = swapCnt = compareCnt = 0; } public String toString() { return probeCnt + " probes " + compareCnt + " compares " + swapCnt + " swaps"; } /** このクラスは、cloneをサポートしている */ public SortMetrics clone() { try { // デフォルトの仕組みで十分 return (SortMetrics) super.clone(); } catch (CloneNotSupportedException e) { // 起こり得ない。このクラスとObjectは複製できる throw new InternalError(e.toString()); } } }