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