Java là ngôn ngữ lập trình mạnh mẽ và phổ biến, và một trong những tính chất quan trọng của nó là tính trừu tượng. Trong bài viết này, chúng ta sẽ tìm hiểu về tính trừu tượng và tại sao nó quan trọng trong Java.
Tính trừu tượng trong Java là gì?
Tính trừu tượng là quá trình ẩn các chi tiết trong quá trình triển khai và chỉ hiển thị chức năng cho người dùng. Trong Java, tính trừu tượng giúp rõ ràng hóa và đơn giản hóa code, giúp người dùng dễ dàng hiểu và sử dụng.
Ví dụ, khi bạn gửi một tin nhắn SMS thông qua ứng dụng di động, bạn chỉ cần thao tác trên giao diện và không cần quan tâm đến quá trình xử lý bên trong.
Hình ảnh: ICANTECH
Lớp trừu tượng và các phương thức trừu tượng
Trong Java, chúng ta sử dụng lớp trừu tượng (abstract classes) và giao diện trừu tượng (abstract interfaces) để triển khai tính trừu tượng.
Một lớp trừu tượng là một lớp được khai báo bằng từ khóa "abstract". Nó có thể chứa các phương thức trừu tượng - các phương thức không cần được thực hiện.
Các phương thức trừu tượng này cần phải được định nghĩa lại trong lớp con, do đó bạn buộc phải ghi đè (override) hoặc làm cho lớp con trở thành lớp trừu tượng.
Thuật toán triển khai tính trừu tượng
Trong Java, các thuật toán để triển khai tính trừu tượng như sau:
- Xác định các lớp hoặc giao diện sẽ tham gia tính trừu tượng.
- Tạo một lớp hoặc giao diện trừu tượng để xác định các hành vi và thuộc tính chung của các lớp này.
- Xác định các phương thức trừu tượng trong lớp hoặc giao diện trừu tượng mà không có chi tiết triển khai.
- Thực hiện các lớp hoặc giao diện cụ thể để mở rộng tính trừu tượng.
- Ghi đè các phương thức trừu tượng trong các lớp con để cung cấp cách triển khai cụ thể cho chúng.
- Sử dụng các lớp con để thực hiện logic của chương trình.
Ưu điểm của tính trừu tượng trong Java
Tính trừu tượng trong Java mang lại rất nhiều ưu điểm, bao gồm:
- Giảm thiểu sự phức tạp cho người dùng.
- Hạn chế sự trùng lặp code và tăng khả năng tái sử dụng.
- Cải thiện khả năng bảo mật và duy trì của ứng dụng.
- Ẩn đi chi tiết triển khai và chỉ hiển thị thông tin có liên quan.
- Cung cấp giao diện rõ ràng và đơn giản cho người dùng.
- Cho phép linh hoạt trong việc triển khai chương trình.
Ví dụ về tính trừu tượng trong Java
Để hiểu rõ hơn về tính trừu tượng trong Java, chúng ta hãy xem hai ví dụ sau.
Ví dụ 1:
// Java program to illustrate the
// concept of Abstraction
abstract class Shape {
String color;
// abstract methods
abstract double area();
public abstract String toString();
// concrete method
public String getColor() {
return color;
}
}
class Circle extends Shape {
double radius;
public Circle(String color, double radius) {
super(color);
this.radius = radius;
}
@Override
double area() {
return Math.PI * Math.pow(radius, 2);
}
@Override
public String toString() {
return "Circle color is " + super.getColor() + " and area is : " + area();
}
}
class Rectangle extends Shape {
double length;
double width;
public Rectangle(String color, double length, double width) {
super(color);
this.length = length;
this.width = width;
}
@Override
double area() {
return length * width;
}
@Override
public String toString() {
return "Rectangle color is " + super.getColor() + " and area is : " + area();
}
}
public class Test {
public static void main(String[] args) {
Shape s1 = new Circle("Red", 2.2);
Shape s2 = new Rectangle("Yellow", 2, 4);
System.out.println(s1.toString());
System.out.println(s2.toString());
}
}
Ảnh: ICANTECH
Ví dụ 2:
// Java Program to implement
// Java Abstraction
// Abstract Class
abstract class Animal {
private String name;
public Animal(String name) {
this.name = name;
}
public abstract void makeSound();
public String getName() {
return name;
}
}
// Abstracted class
class Dog extends Animal {
public Dog(String name) {
super(name);
}
public void makeSound() {
System.out.println(getName() + " barks");
}
}
// Abstracted class
class Cat extends Animal {
public Cat(String name) {
super(name);
}
public void makeSound() {
System.out.println(getName() + " meows");
}
}
// Driver Class
public class AbstractionExample {
public static void main(String[] args) {
Animal myDog = new Dog("Buddy");
Animal myCat = new Cat("Fluffy");
myDog.makeSound();
myCat.makeSound();
}
}
Lời Kết
Tính trừu tượng là một kỹ thuật quan trọng trong lập trình Java, giúp ẩn đi các chi tiết không cần thiết với người dùng cuối. Điều này giúp rõ ràng hóa code và tăng tính bảo mật của ứng dụng. Java cung cấp tính trừu tượng thông qua lớp trừu tượng và giao diện trừu tượng.
Cảm ơn bạn đã đọc bài viết này. Hãy tham khảo ngay các khóa học lập trình tại ICANTECH nếu bạn quan tâm đến việc học lập trình.
Nguồn ảnh: ICANTECH.