Tại sao phải lập trình hướng đối tượng

- Trước khi đi vào học lập trình 1 cái gì đó chúng ta cũng phải nắm bắt được cái cốt lõi nhất .Hôm nay tớ sẽ chia sẻ cho các bạn về 1 khái niệm rất quan trọng và phổ biến bây giờ đó là "lập trình hướng đối tượng" và lợi ích của nó.

1. Khái niệm.
- Khái niệm lập trình hướng đối tượng tuy rất căn bản nhưng khá quan trọng và khi đi phỏng vấn rất có thể người ta sẽ hỏi . Tớ sẽ chia thành ý cho mọi người dễ hiểu và ghi nhớ nha.
- Lập trình hướng đối tượng là :
+ phân tích bài toán thành các đối tượng.
+ Mỗi đối tượng có phương thức [ hành vi ] và thuộc tính [ tính chất ] chung của chúng.
+ Mỗi đối tượng sẽ thực hiện các phương thức của chúng.
+ Để thực hiện bài toán đặt ra ta cho các đối tượng tương tác với nhau.
- Đây là 4 ý quan trọng không được thiếu ý nào nha các bạn.
- Nhiều sách có định nghĩa theo cách khác nhưng sơ sài hơn các bạn nên theo định nghĩa của tớ nha.
* Chú ý : Các bạn phải phân biệt được khái niệm :
+ thuộc tính [ chỉ có trong lập trình hướng đối tượng ] = biến [ chỉ có trong lập trình thủ tục ].
+ phương thức [ chỉ có trong lập trình hướng đối tượng ] = hàm [ chỉ có trong lập trình thủ tục ].
2. Các tính chất của lập trình hướng đối tượng.
- Một vấn đề nữa các bạn cần phải nắm vững đó các tính chất của lập trình hướng đối tượng.
- Lập trình hướng đối tượng có 4 tính chất quan trọng sau :
+ Tính kế thừa :là khả năng xây dựng lớp mới dựa trên những lớp có sẵn [ quan hệ cha con ]. Lớp ban đầu được gọi là lớp cha, lớp kế thừa lớp ban đầu là lớp con. Lớp con có thể bổ sung thêm các chức năng [ phương thức ] và các thành phần [ thuộc tính ] mới .
VD : từ đối tượng "xe" bạn có thêm phát triển thêm các lớp khác như "xe đạp" , "xe máy",....
+ Tính đóng gói và che giấu dữ liệu : tính chất này thể hiện ở chỗ không cho người sử dụng các đối tượng thay đổi các thuộc tính nội tại của các đối tượng. Chỉ các phương thức nội tại [ trong code ] mới thay đổi được nó .
+ Tính trừu tượng hóa : là bỏ qua các đặc điểm chung của các đối tượng để làm nổi bật nên các đặc điểm riêng của từng đối tượng.
+ Tính đa hình : bạn có thể hiểu khi 1 đối tượng kế thừa [ extend ] hay thực hiện 1 hành vi của 1 interface [ implement ] thì đối tượng đó của chính là class mà ta kế thừa và cũng chính là interface mà đối tượng đó thực hiện.
* Chú ý : Khi lập trình trong ngôn ngữ lập trình hướng đối tượng các bạn cần phải nhớ rõ và nắm chắc 4 tính chất quan trọng này .
3. Lợi thế của lập trình hướng đối tượng.
- Để làm nổi bật được lợi thế của lập trình hướng đối tượng tớ sẽ so sánh nó với "lập trình thủ tục".
- Lập trình hướng đối tượng là 1 khái niệm mới nên hầu hết chúng ta ai cũng sẽ đi qua lập trình hướng thủ tục trước sau đó mới học lập trình hướng đối tượng.
- Lập trình hướng thủ tục : hướng theo các chức năng.Lập trình hướng thủ tục chia 1 chương trình [ 1 chức năng lớn ] thành các hàm chức năng nhỏ hơn.Các hàm là độc lập với nhau.
-> Việc phát triển 1 chương trình hướng thủ tục rất khó cũng như việc làm theo teamwork cũng thế do không có đối tượng cụ thể nếu muốn sử dụng từng hàm chức năng riêng biệt giữa các file dữ liệu trong chương trình khó khăn, không dễ hình dung trực quan -> nếu có 1 khái niệm mới đưa những thứ trực quan như đời thường vào trong code thì lập trình viên sẽ dễ dàng cho lập trình viên hơn rất nhiều.
-> Do đó lập trình hướng đối tượng.
- Khái niệm và tính chất của lập trình hướng đối tượng đã nói lên được lợi thế của nó rồi. Lập trình hướng đối tượng rất sát với đời thực áp dụng thực tế vào chương trình của bạn [ ngoài đời thực chúng ta cũng là các đối tượng mà ] khi đã hình dung được các đối tượng có các phương thức và thuộc tính nào rồi thì lập trình viên có thể phát triển chương trình rất tự nhiên gần gũi với ngôn ngữ tự nhiên. Ngoài ra việc sửa lỗi cũng rất nhanh do gần gũi với ngôn ngữ tự nhiên nên từ thực tế nếu sai cái j trong code thì có thể sửa được [ đặc biệt là làm việc teamwork ] sẽ thể rõ lợi thế của lập trình hướng đối tượng.
4. Ví dụ so sánh.
- Để thấy rõ được lợi thế của lập trình hướng đối tượng tôi sẽ cho các bạn 1 ví dụ cụ thể để dễ so sánh .
- Ví dụ : bạn có 1 chương trình xây dựng về chiếc xe đạp .
+ Cách 1 : Bạn xây dựng theo hướng thủ tục [ cũng tốt ] nhưng khi bạn muốn phát triển nên xe máy thì sao. Có thể bạn sẽ phải bê nguyên đoạn code bạn đã dùng sang xe máy [ lằng nhằng và tốn tài nguyên ]. Sau này việc phát triển lên những loại xe phức tạp hơn thì nó sẽ chồng thành 1 đống [ thật bất tiện ].
+ Cách 2 : Bạn có 1 chương trình hướng đối tượng khi muốn phát triển không cần bạn phải bê nguyên vào đoạn code ở xe đạp vào xe máy mà nó sẽ có những từ khóa hỗ trợ bạn sử dụng lại các phương thức đó. Sau này khi phát triển nên các đối tượng xe hiện đại hơn ta chỉ cần dùng đối tượng xe cũ thôi [ dùng cái gì của đối tượng xe cũ là quyền của lập trình viên ].

Video liên quan

Chủ Đề