Nếu bạn đang bắt đầu tìm hiểu về lập trình nói chung và lập trình hướng đối tượng nói riêng, thì đừng bỏ qua bài viết này nhé!
Lập trình hướng đối tượng (OOP) là kỹ thuật lập trình dựa vào sự tương tác giữa các đối tượng. Chúng có chứa những thuộc tính hay còn gọi là thông tin lưu trữ, cùng phương thức xác định các chức năng riêng. Bên cạnh đó, trong lĩnh vực này còn có một số khái niệm cơ bản khác, hãy cùng Tự Học Lập Trình tìm hiểu thông qua bài viết sau đây.
Tổng quan
Có 4 tính chất chính trong lập trình hướng đối tượng:
- Abstraction: Tính trừu tượng.
- Encapsulation: Tính đóng gói.
- Inheritance: Tính kế thừa.
- Polymorphism: Tính đa hình.
Mỗi tính chất trên đều có những vai trò vô cùng quan trọng.
Trước hết, để nắm rõ hơn phần sau, chúng ta sẽ tìm hiểu đôi chút về định nghĩa của đối tượng và lớp:
- Đối tượng: Một thực thể có trạng thái và hành vi. Nó mang tính vật lý hoặc logic.
- Lớp: Tập hợp các đối tượng và là một thực thể logic.
Các khái niệm về lập trình hướng đối tượng
Tính trừu tượng
Bạn có thường bị nhầm lẫn giữa lớp (class) và đối tượng (object) hay không? Hiểu theo cách đơn giản nhất, lớp là một ý niệm trừu tượng, còn đối tượng là sự thể hiện cụ thể của lớp.
Chẳng hạn như, nếu bản thiết kế nhà là lớp, thì ngôi nhà xây dựng dựa trên bản thiết kế đó sẽ được gọi là đối tượng.
Đây là một trong những khả năng của chương trình, bỏ qua hay không chú ý các khía cạnh liên quan đến thông tin mà nó đang trực tiếp làm việc, chỉ tập trung vào những cốt lõi cần thiết. Tính chất này thường được gọi là sự trừu tượng của dữ liệu.
Tính đóng gói
Mỗi lớp được xây dựng để thực hiện nhóm chức năng đặc trưng riêng. Điểm quan trọng trong cách giao tiếp giữa các đối tượng, là đối tượng này sẽ không được truy xuất trực tiếp vào thành phần dữ liệu, cũng như không được đưa thành phần dữ liệu của mình cho đối tượng khác một cách trực tiếp. Tất cả mọi thao tác đều phải được thực hiện bởi các phương thức (method).
Ngoài ra, tính đóng gói còn cho phép dấu thông tin của đối tượng, người sử dụng không được quyền thay đổi trạng thái nội tại của nó.
Tính kế thừa
Tính kế thừa cho phép ta xây dựng một lớp mới dựa trên các định nghĩa của một lớp cũ. Lớp đã có gọi là "cha", lớp phát sinh thêm gọi là "con" và hiển nhiên kế thừa tất cả các thành phần của "cha". Điều này cho phép các đối tượng chia sẻ, hay mở rộng những đặc tính sẵn có mà không cần phải tiến hành định nghĩa lại từ đầu.
Tính đa hình
Khi một tác vụ được thực hiện theo nhiều cách khác nhau, nó sẽ được gọi là tính đa hình. Người lập trình có thể định nghĩa một đặc tính cho loạt các đối tượng gần nhau, khi thi hành thì dùng cùng một tên gọi để tránh bị nhầm lẫn.