Số 42, ngõ 178 Thái Hà, Đống Đa, Hà Nội
0985 136 895

Lập trình hướng đối tượng là gì? Oop với các ngôn ngữ lập trình Web

Khi mới làm quen với lập trình chúng ta thường bắt đầu với các ngôn ngữ như Pascal, C là những ngôn ngữ lập trình cấu trúc với việc thực hiện mã lệnh tuần tự kèm theo các câu lệnh điều kiện và các vòng lặp. Kiểu lập trình này giúp chúng ta có thể nhanh chóng tiếp cận và thực hành, nhưng với các dự án dần dà nó có những yếu điểm trong phát triển phần mềm. Từ các các điểm yếu trên chúng ta có “lập trình hướng đối tượng ra đời”.

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

Lập trình hướng đối tượng là lập trình hỗ trợ công nghệ đối tượng (Object oriented programming-OOP) giúp tăng năng xuất và đơn giản hóa công việc xây dựng phần mềm, bảo trì phần mềm, cho phép lập trình viên tập trung vào các đối tượng giống như trong thực tế.

OOP là nghệ thuật quan sát các đối tượng trong tự nhiên rồi cố gắng nắm bắt những hành động cùng đặc tính của chúng và biểu diễn dưới dạng đối tượng ảo trong ngôn ngữ lập trình

Lập trình hướng đối tượng là kiểu lập trình nhằm vào sự tương tác giữa các đối tượng.Mỗi đối tượng có những thuộc tính xác định các đặc điểm, những phương thức xác định những chức năng của đối tượng. Chúng tạo thành cấu trúc của đối tượng.

  • Tập trung vào dữ liệu thay cho các phương thức.
  • Chương trình được chia thành các đối tượng độc lập
  • Cấu trúc dữ liệu được thiết kế sao cho đặc tả được các đối tượng.
  • Dữ liệu được che giấu,bao bọc.
  • Các đối tượng trao đổi với nhau thông qua các phương thức.

Lập trình hướng đối tượng bắt nguồn từ đâu ?

Xuất phát từ các nhược điểm của các phương pháp lập trình truyền thống như:

  • Không quản lý được dòng code khi có sự thay đổi chương trình. Có nhiều chương trình cùng sử dụng một biến chung nên rất nguy hiểm khi chương trình ngày càng lớn.
  • Không tiết kiệm được tài nguyên con người và tài nguyên hệ thống. Giải thuật gắn liền với dữ liệu nên khi thay đổi dữ liệu thì giải thuật buộc phải thay đổi theo.
  • Dữ liệu không bị che dấu cần là dùng nên không có tính bảo mật
  • Để khắc phục những hạn chế đó khi giải quyêt các bài toán lớn người ta xây dựng một phương pháp tiếp cận mới, đó là phương pháp lập trình hướng đối tượng.

Những điểm mạnh của  lập trình hướng đối tượng.

Điểm mạnh của oop

  • Thông qua nguyên lý kế thừa, trong quá trình mô tả các lớp có thể loại bỏ những chương trình bị lặp, dư. Và có thể mở rộng khả năng sử dụng các lớp mà không cần thực hiện lại.
  • Đối tượng sẽ trao đổi với nhau về thiết kế và lập trình được dựng sẵn. Và phải được thực hiện theo quy trình nhất định chứ không phải dựa vào kinh nghiệm và kỹ thuật như trước.
  • Nguyên lý đóng gói và che dấu thông tin giúp người lập trình bảo vệ lập trình an toàn hơn. Và không bị thay đổi bởi những lập trình khác.
  • Tiếp cận các đối tượng trọng tâm để thiết kế, xây dựng mô hình chi tiết có liên quan chặt chẽ đến các dạng cài đặt.
  • Những hệ thống hướng đối tượng ngày càng được mở rộng và được nâng cấp thành những hệ thống lớn hơn.
  • Truyền thông và trao đổi thông tin với các đối tượng giúp cho việc mô tả giao diện trở nên đơn giản hơn với các hệ thống ngoài.

Lập trình hướng đối tượng với các ngôn ngữ lập trình Web

Như đã nói ở trên lập trình hướng đối tượng (OOP) xuất phát từ các nhược điểm của các phương pháp lập trình truyền thống.Nó ra đời để khắc phục các yếu điểm của các ngôn ngữ lập trình web như:

  • Dễ dàng quản lý code khi có sự thay đổi chương trình.
  • Dễ mở rộng dự án.
  • Tiết kiệm được tài nguyên đáng kể cho hệ thống.
  • Có tính bảo mật cao.

Có tính tái sử dụng cao.

Các thuộc tính của lập trình hướng đối tượng

Tính đóng gói

Gói dữ liệu và mã chương trình thành một cục gọi là lớp (class) để dễ quản lí. Trong mục này thường data rất rối rắm, không tiện cho người không có trách nhiệm truy cập trực tiếp. Nên thường ta sẽ che dấu data đi, chỉ để lòi phương thức ra ngoài

Tính kế thừa

Lập trình hướng đối tượng là gìKế thừa là cách tạo lớp mới từ các lớp đã được định nghĩa từ trước

Lớp cha có thể chia sẻ dữ liệu và phương thức cho các lớp con. Các lớp con khỏi phải định nghĩa lại những logic chung, giúp chương trình ngắn gọn. Nếu lớp cha là interface, thì lớp con sẽ di truyền những contract trừu tượng từ lớp cha

 

Chú ý:

  • Một lớp cha có thể có nhiều lớp con
  • Đến lượt mình mỗi lớp con lại có thể có các con khác
  • Trong C++ cho phép đa kế thừa (một lớp con có thể nhận hơn 1 lớp cha)
  • Java chỉ cho phép mỗi lớp con kế thừa 1 và chỉ một lớp cha. Từ khóa implement sẽ thay thế cho đa kế thừa từ C++

Tính trừu tượng, phương thức ảo:

  • Phương thức ảo là phương thức được định nghĩa ở lớp cơ sở (lớp cha) mà các lớp dẫn xuất (lớp con) muốn sử dụng phải định nghĩa lại. Dùng từ khoá virtual (c++) hay abstract (java)để khai báo phương thức ảo:
  • Trong Class ảo có thể có phương thức ảo hoặc không nhưng phương thức ảo bắt buộc phải ở trong class ảo
  • phương thức ảo không chứa body
  • Khi kế thừa class ảo, bắt buộc phải viết lại phương thức ảo của nó

Tính đa hình (polymorphism)

  • Tính đa hình được thể hiện qua việc viết lại các method(hàm) từ class cha thông qua class kế thừa nó hoặc việc triển khai các interface.

>>>> Xem thêm: full stack developer là gì

                          Vicoders cảm ơn các bjn đã đọc!

 

Leave a comment