Mảng các đối tượng hình chữ nhật trong Java



Đề bài: Tạo lớp hình chữ nhật, có phương thức tính diện tích. Viết chương trình tạo một mảng gồm 10 đối tượng của lớp hình chữ nhật, sau đó sắp xếp mảng theo chiều tăng dần của diện tích các đối tượng hình chữ nhật.
Yêu cầu kiến thức:

  • Xác định đối tượng chương trình từ đối tượng thực tế
  • Xác định, phân tích các thành phần trong lớp và đối tượng như thuộc tính và phương thức
  • Biết cách sử dụng lớp abstract và interface trong tình huống thích hợp
  • Xác định kiểu dữ liệu của biến và hàm trong chương trình

Cấu trúc thư mục:
src
|——BuildClass
   |——Shape.java
   |——Rectangle.java
|——UseClass
   |——MainClass.java
Code tham khảo dưới đây được viết trên JDK ver 8.x:
File Shape.java:


package BuildClass;

public abstract class Shape {
    abstract double erea();
}

File Rectangle.java:


package BuildClass;

public class Rectangle extends Shape implements Comparable {
    // Thuoc tinh
    private double width;
    private double hight;

    // Phuong thuc
    // Ham khoi tao khong doi so
    public Rectangle() {

    }

    // Ham khoi tao co doi so
    public Rectangle(double width, double hight) {
        this.width = width;
        this.hight = hight;
    }

    // Ghi de phuong thuc erea
    @Override
    public double erea() {
        return width * hight;
    }

    // Ghi de phuong thuc campareTo
    @Override
    public int compareTo(Object o) {
        Shape oShape = (Shape) o;
        return (int) (this.erea() - oShape.erea());
    }

    @Override
    public String toString() {
        return "Rectangle{" +
                "width=" + width +
                ", hight=" + hight +
                ", erea=" + erea() +
                '}';
    }
}

File MainClass.java:


package UseClass;

import BuildClass.Rectangle;

import java.util.Arrays;
import java.util.Random;

public class MainClass {
    public static void main(String[] args) {
        // Khai bao doi tuong random
        Random random = new Random();

        // Khoi tao mang doi tuong hinh chu nhat
        Rectangle[] a = new Rectangle[10];

        // Random chieu dai va chieu rong cho cac doi tuong hinh chu nhat
        double randomW = 0;
        double randomH = 0;

        for (int i = 0; i < a.length; i++) {
            randomW = random.nextInt(10);
            randomH = random.nextInt(10);

            // Khoi tao width va hight cho cac doi tuong trong a
            a[i] = new Rectangle(randomW, randomH);
        }

        // Sap xep dien tich cac doi tuong hinh chu nhat
        Arrays.sort(a);

        // Hien thi
        for (int i = 0; i < a.length; i++) {
            System.out.println("Hinh chu nhat thu " + (i + 1) + ": " + a[i].toString());
        }
    }
}


Kết luận:

  • Bạn có thể tham khảo thêm khóa học lập trình C từ cơ bản đến nâng cao. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Thành thạo lập trình C#. Xem tại đây
  • Bạn có thể tham khảo thêm khóa học Ôn tập OOP cơ bản trong Java. Xem tại đây

Có thể bạn sẽ thích…

Trả lời

EnglishVietnamese