Đặc điểm của các phương pháp lập trình

Đây là bài 2/19 bài của series môn học Lập trình hướng đối tượng

Có nhiều phương pháp lập trình như lập trình hướng tác tử (Agent-oriented), hướng thủ tục (Procedural), hướng sự kiện (Event-driven), lập trình cấu trúc (Structured), lập trình hàm (Functional), lập trình logic, lập trình ràng buộc (Constraint), hướng mệnh lệnh (Imperative), hướng đối tượng (Object-oriented),…

Bài này sẽ giới thiệu đến các bạn các đặc điểm của 3 phương pháp lập trình phổ biến: hướng mệnh lệnh, hướng thủ tục và hướng đối tượng.

1. Phương pháp lập trình hướng mệnh lệnh

Người ta xem chương trình là tập hợp các lệnh. Khi đó việc viết chương trình là xác định xem chương trình gồm những lệnh nào, thứ tự thực hiện của các lệnh ra sao. Chương trình sẽ thực thi từng lệnh theo thứ tự câu lệnh 1 đến câu lệnh 2, câu lệnh 3,… để hoàn thành mục tiêu của chương trình.

Minh họa imperative programming

Các ngôn ngữ hỗ trợ phương pháp lập trình này như C, C++, Java, Kotlin, PHP, Python, Ruby.

2. Phương pháp lập trình hướng thủ tục

Trong phương pháp này, người ta xem chương trình là một hệ thống các thủ tục và hàm. Trong đó, mỗi thủ tục và hàm là một dãy các lệnh được sắp xếp có thứ tự. Khi đó, việc viết chương trình là xác định xem chương trình gồm các thủ tục và hàm nào, mối quan hệ giữa chúng ra sao?

Minh họa procedural programming

Các ngôn ngữ hỗ trợ phương pháp lập trình này như C, C++, Lisp, PHP, Python.

3. Phương pháp lập trình hướng đối tượng

3.1. Tư duy của phương pháp lập trình hướng đối tượng

Người ta xem chương trình là một hệ thống các đối tượng. Trong đó, mỗi đối tượng bao gồm 2 thành phần:

– Các dữ liệu (data), các trường (fields), thường được gọi là các thuộc tính (attributes).

– Các phương thức (methods) là các khả năng mà đối tượng có thể thực hiện.

Trong chương trình, một đối tượng là một thể hiện cụ thể của một lớp (class). Một lớp là một thiết kế (blueprint) hay mẫu (prototype) cho các đối tượng cùng kiểu, định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng.

Minh họa oriented object programming

Các ngôn ngữ hỗ trợ phương pháp lập trình này như Common Lisp, C++, C#, Java, Kotlin, PHP, Python, Ruby, Scala, JavaScript.

3.2. 4 tính chất của lập trình hướng đối tượng

Tính trừu tượng (abstraction)

Là quá trình phân tích, lựa chọn những thuộc tính chung, quan trọng và cốt lõi của các đối tượng. Tính trừu tượng sẽ loại bỏ những thông tin phức tạp, không cần thiết của đối tượng. Từ đó, phân biệt được các loại đối tượng khác nhau.

Thuộc tính liên quan đến một chiếc ôtô
Thuộc tính liên quan đến một chiếc ôtô

Tính đóng gói (encapsulation)

Tính đóng gói là cơ chế ràng buộc dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất. Thể thống nhất này gọi là đối tượng. Tính đóng gói đảm bảo sự đồng nhất giữa dữ liệu và các thao tác tác động lên dữ liệu đó. Cơ chế đóng gói là một cách tốt để giúp che dấu thông tin trong đối tượng.

Class đóng gói các thành phần dữ liệu và các phương thức
Class đóng gói các thành phần dữ liệu và các phương thức

Tính kế thừa (inheritace)

Chúng ta có thể xây dựng các lớp mới từ các lớp cũ thông qua sự kế thừa. Một lớp mới gọi là lớp dẫn xuất (derived class). Lớp dẫn xuất có thể thừa hưởng dữ liệu và các phương thức của lớp cơ sở (base class) ban đầu.

Một sơ đồ kế thừa trong OOP
Một sơ đồ kế thừa trong OOP

Với tính kế thừa, chúng ta không phải mất công xây dựng lại từ đầu các lớp mới, chỉ cần bổ sung để có được trong các lớp dẫn xuất với thuộc tính cần thiết.

Tính đa hình (polymorphism)

Khi một lớp dẫn xuất được tạo ra, nó có thể thay đổi cách thực hiện các phương thức nào đó mà nó thừa hưởng từ lớp cơ sở của nó.

Phương thức tính diện tích của Circle và Rectangle là khác nhau thể hiện tính đa hình
Phương thức tính diện tích của Circle và Rectangle là khác nhau thể hiện tính đa hình

Tính đa hình giúp các đối tượng có tính đa dạng, phong phú và thể hiện đặc trưng của riêng chúng giữa các loại đối tượng khác nhau.

5/5 - (1 bình chọn)
Bài trước và bài sau trong môn học<< Giới thiệu môn học Phương pháp lập trình hướng đối tượngKhái niệm lớp và đối tượng trong lập trình hướng đối tượng >>
Chia sẻ trên mạng xã hội:

Trả lời

Lưu ý:

1) Vui lòng bình luận bằng tiếng Việt có dấu.

2) Khuyến khích sử dụng tên thật và địa chỉ email chính xác.

3) Mọi bình luận trái quy định sẽ bị xóa bỏ.