OOP là gì?
Sau khi bước vào học lập trình một thời gian, chúng ta sẽ tiếp cận với một khái niệm mới và sẽ gây lú với nhiều người đó là OOP – Object Oriented Programming, hay tiếng việt chúng ta gọi là lập trình hướng đối tượng. Nó là một tư duy lập trình với những quy ước hay ý tưởng nhất định giúp cho các chương trình có cấu trúc rõ ràng, dễ bảo trì và mở rộng hơn, chứ nó không phải là một công nghệ của một ngôn ngữ lập trình cụ thể.
Hiện tại đã có rất nhiều bài viết về OOP nhưng chúng ta sẽ thấy phần lớn khá là hàn lâm, trong khi ta nên liên hệ một chút ra thực tế thì sẽ khiến ta hiểu bản chất của chúng hơn rất nhiều. Bài viết này mình muốn chia sẻ kiến thức mình học được, tổng hợp được và đóng góp cho cộng đồng những gì chọn lọc nhất có thể.
Tại sao OOP ?
Đúng rồi đấy, ta nên hiểu theo đúng nghĩa đen của nó – hướng đến một đối tượng cụ thể. Sau khi hiểu về mẫu hình lập trình này, bạn sẽ thấy rằng nếu không có chúng thì chương trình của chúng ta thực sự rất rắc rối đấy. Khi mới học lập trình, code của chúng ta sẽ khá bừa bãi, bạ đâu code đấy mặc dù ta đã sắp xếp theo nhiều module, chia ra hàm hiếc riêng biệt nhưng khi chương trình càng ngày càng lớn hơn thì ta sẽ thấy nó phát sinh ngày càng nhiều vấn đề.
Ví dụ bạn code 1 project mà không theo quy chuẩn nào thì sau một thời gian không động tới liệu chúng ta có thể tiếp tục mở rộng, chỉnh sửa chúng trơn tru luôn không hay lại mất một thời gian tìm hiểu lại, hoặc khi đưa code cho người khác, liệu họ có thể nhìn ra những gì ta đã làm không? Vì vậy OOP sẽ khiến mọi thứ ngăn nắp hơn, theo quy chuẩn chung và tất nhiên sẽ kéo theo các lợi ích khác, vậy chúng có những gì?
Class và Object
Hãy liên hệ sang thực tế, ta sẽ thấy rằng mỗi chúng ta sẽ có những đặc trưng, hành vi riêng và chung. Ví dụ mình và bạn sẽ có những thứ chung như: 2 chân, 2 tay, đau thì khóc, vui thì cười, hoặc những thứ riêng như: mình có chỉ số IQ là 123, bạn có chỉ số IQ 124, … . Nếu mỗi lần muốn tạo một đối tượng nào đấy mà ta code lần lượt từ đầu đến cuối, thêm từng thuộc tính, hành vi cho nó thì sẽ phải là tốn rất nhiều thời gian, vì vậy mà ta cần một cái khuôn chung, đó là class
Bạn cứ hiểu rằng nó như một khôn mẫu và mỗi lần tạo một object (đối tượng) từ cái khuôn đấy thì mọi sản phẩm đó đều thừa hưởng hết những gì mà class đấy có. Cùng xem ví dụ sau đây.
Nguồn bài viết : Viblo