Lập trình hướng đối tượng là gì?

Lập trình hướng đối tượng là gì?

Ngày nay, người ta hay nói lập trình hướng đối tượng (OOP), vậy nó là gì? Trước khi OOP ra đời thì người ta không hướng đối tượng mà hướng về lập trình thủ tục (function), giống như hồi THPT các bạn hay được học lập trình pascal đều giải quyết bài toán theo cách chia để trị, rồi xây dựng các function rồi lắp ghép để giải quyết các bài toán đó.

Lập trình hướng đối tượng

Lập trình hướng đối tượng

Khi được giao một vấn đề thì đầu tiên ta dùng “tuyệt chiêu” chia để trị, tức là chia một vấn đề lớn ra thành nhiều vấn đề nhỏ hơn. Mỗi một vấn đề nhỏ ta viết ra một function để giải quyết vấn đề đó. Tập hợp nhiều function ta sẽ ghép lại và giải quyết được vấn đề lớn. Quy tắc ở đây chính là mỗi một function chỉ giải quyết duy nhất được một vấn đề mà thôi.

Để dễ hiểu hơn cho các bạn mình sẽ ví dụ về lập trình để giải quyết bài toán máy tính casio ở mức các phép tính đơn giản, áp dụng phương pháp chia để trị ta sẽ có được các function như sau:

Để thực thi ta chỉ việc gọi function bằng cách cong(1,1) sẽ cho ra kết quả = 2 rất đơn giản phải không? Nhưng nếu để thực hiện phép tính: (1+1)*5/2 thì ta sẽ phải gọi: chia(nhan(cong(1,1),5),2) . Bạn có thấy không, lồng ghép các thủ tục để gọi rất phức tạp phải không nào?

Sau này có OOP thì người ta thay đổi cách tư duy coi casio là một đối tượng, và sẽ lập trình theo các hướng về đối tượng này và trả lời các câu hỏi?

  • Đối tượng casio có những gì trong nó? (đặt attribute thuộc tính)
  • Đối tượng casio sẽ cần làm những việc gì? (viết function hành động)

Chương trình của chúng ta sẽ được viết thành

 Áp dụng đối tượng casio này cho bài toán: (1+1)*5/2 ta sẽ có

 Đơn giản hơn rồi phải không nào, chúng ta sẽ gọi theo thứ tự sẽ không rắc rối và loằng ngoằng nữa.

Kết luận lập trình hướng đối tượng OOP

OOP là một kỹ thuật lập trình trong đó người lập trình sẽ đối tượng hóa một vấn đề lớn, nhìn nó ra đó là một đối tượng và tìm cách giải quyết bằng cách cho các đối tượng này tác động qua lại với nhau thông qua các hành động chứa trong nó.