Lớp trừu tượng abstract Shape trong Java



Đề bài: Khai báo lớp Shape là lớp trừu tượng (abstract) như sau:


public abstract class Shape {
    // Phuong thuc truu tuong tinh dien tich
    public abstract double area();

    // Phuong thuc hien thi thong tin
    public String toString() {
        return "Dien tich la: " + area();
    }
}

Xây dựng lớp Rectangle và lớp Circle kế thừa lớp Shape định nghĩa hình chữ nhật và hình tròn.
Yêu cầu kiến thức:

  • Phân tích và xác định đối tượng chương trình từ đối tượng thực tế
  • Xác định các thành phần của các lớp như thuộc tính và phương thức
  • Nắm được các kiến thức về lớp trừu tượng (abstract) và tính chất kế thừa (extends) trong Java

Cấu trúc thư mục:
src
|——BuildClass
   |——Shape.java
   |——Rectangle.java
   |——Circle.java
|——UseClass
   |——MainUse.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 {
    // Phuong thuc truu tuong tinh dien tich
    public abstract double area();

    // Phuong thuc hien thi thong tin
    public String toString() {
        return "Dien tich la: " + area();
    }
}

File Rectangle.java:


package BuildClass;

public class Rectangle extends Shape {
    // Thuoc tinh
    private double chieuDai;
    private double chieuRong;

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

    }

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

    // Ham tinh chu vi hinh chu nhat
    public double chuVi() {
        return (this.chieuDai + this.chieuRong) * 2;
    }

    // Viet lai ham tinh dien tich
    @Override
    public double area() {
        return this.chieuDai * this.chieuRong;
    }
}

File Circle.java:


package BuildClass;

public class Circle extends Shape {
    // Thuoc tinh
    private double banKinh;

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

    }

    // Ham khoi tao co doi so
    public Circle(double banKinh) {
        this.banKinh = banKinh;
    }

    // Ham tinh chu vi hinh tron
    public double chuVi() {
        return 2 * Math.PI * this.banKinh;
    }

    // Viet lai ham tinh dien tich
    @Override
    public double area() {
        return Math.PI * this.banKinh * this.banKinh;
    }
}

File MainUse.java:


package UseClass;

import BuildClass.Circle;
import BuildClass.Rectangle;
import BuildClass.Shape;

public class MainUse {
    public static void main(String[] args) {
        // Tao mang kieu Shape, khoi tao cac doi tuong Rectangle vaf Circle
        Shape[] arr = {new Rectangle(5, 10), new Circle(4.5)};

        // Hien thi thong tin
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}


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

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

EnglishVietnamese