Tính trừu tượng trong Java là một trong những khái niệm quan trọng trong các tính chất của Java. Tính trừu tượng là thuộc tính mà nhờ đó các chi tiết thiết yếu được hiển thị đến người dùng. Trong bài viết này, chúng ta sẽ cùng tìm hiểu về khái niệm, ý nghĩa và ưu điểm của tính trừu tượng trong ngôn ngữ lập trình Java.
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. Nói cách khác, tính trừu tượng trong Java chỉ hiển thị những thông tin thiết yếu cho người dùng và ẩn đi các chi tiết bên trong. Ví dụ như khi bạn nhập văn bản và gửi tin nhắn sms, bạn sẽ chỉ nhìn thấy màn hình nhập văn bản và nhấn gửi đi mà không biết quá trình xử lý nội bộ việc gửi tin nhắn đó như thế nào.
Java là ngôn ngữ lập trình hướng đối tượng (OOP - Object Oriented Programming), chính vì thế mà tính trừu tượng được xem là một trong các tính chất của Java đóng vai trò quan trọng. Tính trừu tượng trong Java được triển khai bằng cách sử dụng các lớp trừu tượng (abstract classes) và giao diện trừu tượng (abstract interfaces).
Lớp trừu tượng và các phương thức trừu tượng có những đặc điểm là:
Trong Java, các thuật toán để triển khai tính trừu tượng như sau:
Là một trong số các tính chất của Java, tính trừu tượng có rất nhiều ưu điểm nổi bật có thể kể ra như:
Để giúp bạn hiểu hơn về tính trừu tượng trong Java, chúng ta hãy cùng xem 2 ví dụ dưới đây.
Ví dụ 1:
// Java program to illustrate the
// concept of Abstraction
abstract class Shape {
String color;
// these are abstract methods
abstract double area();
public abstract String toString();
// abstract class can have the constructor
public Shape(String color)
{
System.out.println("Shape constructor called");
this.color = color;
}
// this is a concrete method
public String getColor() { return color; }
}
class Circle extends Shape {
double radius;
public Circle(String color, double radius)
{
// calling Shape constructor
super(color);
System.out.println("Circle constructor called");
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)
{
// calling Shape constructor
super(color);
System.out.println("Rectangle constructor called");
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());
}
}
Output:
Shape constructor called
Circle constructor called
Shape constructor called
Rectangle constructor called
Circle color is Redand area is : 15.205308443374602
Rectangle color is Yellowand area is : 8.0
Ví dụ 2:
// Java Program to implement
// Java Abstraction
// Abstract Class declared
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 {
// Main Function
public static void main(String[] args)
{
Animal myDog = new Dog("Buddy");
Animal myCat = new Cat("Fluffy");
myDog.makeSound();
myCat.makeSound();
}
}
Output:
Buddy barks
Fluffy meows
Vậy là chúng ta đã cùng nhau tìm hiểu chi tiết về tính trừu tượng trong Java. Trừu tượng là một kỹ thuật được sử dụng để ẩn những chi tiết không cần thiết với người dùng cuối. Java cung cấp tính trừu tượng thông qua các lớp và giao diện trừu tượng. Trong khi các giao diện cung cấp khả năng trừu tượng 100% thì các lớp trừu tượng cung cấp khả năng trừu tượng một phần. Tùy thuộc vào thông tin nào của ứng dụng sẽ sẽ được hiển thị đến người dùng mà các nhà phát triển sẽ lựa chọn cách phù hợp.
Cảm ơn bạn đã đọc bài viết, nếu bạn đang quan tâm đến học lập trình thì hãy tham khảo ngay các khóa học lập trình dưới đây tại ICANTECH nhé!
Nguồn ảnh: ICANTECH.