NỘI DUNG BÀI VIẾT
Mục tiêu
Luyện tập thiết kế và triển khai interface.
Điều kiện
Biết cách thiết kế và triển khai interface.
Mô tả
Sử dụng interface Comparable
và triển khai phương thức compareTo()
để hỗ trợ so sánh “hơn, kém, bằng” các đối tượng của các lớp hình học đã được viết ở bài trước. Trong Java, phương thức java.util.Arrays.sort()
sử dụng compareTo()
để triển khai, do đó, viết một chương trình sử dụng phương thức sort()
để kiểm thử compareTo()
.
Mã cho các lớp hình học có thể tham khảo tại repository này.
Hướng dẫn
Bước 1: Tạo một lớp ComparableCircle
kế thừa lớp Circle
, triển khai interface Comparable
:
public class ComparableCircle extends Circle implements Comparable<ComparableCircle> { public ComparableCircle() { } public ComparableCircle(double radius) { super(radius); } public ComparableCircle(double radius, String color, boolean filled) { super(radius, color, filled); } @Override public int compareTo(ComparableCircle o) { if (getRadius() > o.getRadius()) return 1; else if (getRadius() < o.getRadius()) return -1; else return 1; } }
Bước 2: Tạo chương trình để kiểm thử ComparableCircle
:
import java.util.Arrays; public class ComparableCircleTest { public static void main(String[] args) { ComparableCircle[] circles = new ComparableCircle[3]; circles[0] = new ComparableCircle(3.6); circles[1] = new ComparableCircle(); circles[2] = new ComparableCircle(3.5, "indigo", false); System.out.println("Pre-sorted:"); for (ComparableCircle circle : circles) { System.out.println(circle); } Arrays.sort(circles); System.out.println("After-sorted:"); for (ComparableCircle circle : circles) { System.out.println(circle); } } }
Hướng dẫn nộp bài:
Up bài lên github
Paste link github vào phần nộp bài.
Tham khảo mã nguồn tại repository này