• 0366 997 840
  • namdong92@gmail.com

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


Giới Thiệu

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm "công nghệ đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính; và mã nguồn, được tổ chức thành các phương thức. Phương thức giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức "this" hoặc "self"). (https://vi.wikipedia.org) . Ta có thể hiểu đơn giản lập trình hướng đối tượng là ảo hóa các đối tượng trong tự nhiên thành các thuộc tính, phương thức, cùng với dữ liệu đi kèm chúng.

Ý Nghĩa 

Lập trình hướng đối tượng là một phương pháp lập trình cho các vấn đề lớn và phức tạp. Ý tưởng chính là đóng gói tất cả chức năng vào trong đối tượng. Nói cách khác, đây là phương pháp chia để trị. Trước khi OOP ra đời, bạn lập trình theo phương pháp thủ tục, bạn có thể chia các tính năng của chương trình thành các thủ tục khác nhau, nhưng điều đó càng ngày càng phức tạp khi kích cỡ chương trình lớn thêm. Khi đó chúng ta cần phải có một phương pháp mới để quản lý các thủ tục một cách dễ dàng, và đó là nguyên nhân ra đời của một phương pháp mới, phương pháp quản lý trên đối tượng.

Ví dụ, bạn hãy nhìn vào ngôi nhà và cách hoạt động của nó, thật là cơ man các sự phức tạp. Tủ lạnh phải có các bơm làm mát, bộ phận cảm biến nhiệt, quạt và vân vân. Bếp lò có thể bao gồm nhiều thiết bị như bộ phận nhiệt độ, bộ định thời gian, đèn..Theo cách nhìn nhận này, khi ta xem xét ngôi nhà với mọi bộ phận cùng một lúc, ta thấy ngôi  nhà quá phức tạp. Nhưng nếu bạn bao bọc từng thành phần, thành các đối tượng, tình hình đã có thể dễ dàng xử lý hơn rất nhiều. Đây là cái tủ lạnh. Đây là cái bếp lò. Đó là cái máy rửa chén và vân vân. Không vấn đề gì lớn cả. Bạn sẽ thấy mọi thứ đơn giản đi rất nhiều thứ bạn phải quan tâm bay  giờ là để chúng o chỗ nào. còn việc cấu tạo hay hoạt động của chúng ra làm sao ta không cần quan tâm.

ví dụ: bạn có một phần mềm chạy trên window. nó dang sử dung database để lưu trữ dữ liệu. bạn sẽ làm việc với một đối tượng "kết nối database". và sử dung các phương thức như thêm, xóa, sửa... còn việc thêm xóa sửa như thế nào thì là việc của đối tượng "kết nối database".

NIỆM CHÍNH CỦA OOP

OOP bao gồm bốn khái niệm chính là trừu tượng, đóng gói, đa hình và kế thừa. Tôi sẽ thảo luận chúng trong phần sau đây: 

Trừu tượng là gì?

Khi bạn làm việc với mẫu thiết kế, bạn sẽ thấy phần lớn đều liên quan đến khái niệm trừu tượng. Trừu tượng là cách thức bạn nghĩ ra để xem xét việc giải quyết một vấn đề nào đó. Trừu tượng không phải là một kỹ thuật lập trình. Thực chất, nó chỉ có nghĩa là bạn phải nhận thức được vấn đề trước khi áp dụng kỹ thuật hướng đối tượng.

Trừu tượng là cách bạn phân chia, cách giải quyết vấn đề thành những phân đoạn nhỏ hơn. Đây là cách thức bạn giải quyết vấn đề bằng cách chia chúng ra thành từng phần nhỏ có thể quản lý được. Nói cách khác, trừu tượng hóa một bài toán, đơn giản chỉ là cách giải quyết bài toán theo kiểu hướng đối tượng. Các dữ liệu cần thiết cho từng đối tượng sẽ trở thành thuộc tính của đối tượng đó, thuộc tính đó có thể là riêng tư cho đối tượng hoặc công cộng cho đối tượng khác sử dụng. Các hành vi mà đối tượng thể hiện trong thế giới thực cũng trở thành một hành động của chúng và được viết thành mã của chương trình.

Khi bạn chắc chắn đã tìm ra hướng giải quyết một bài toán đúng đắn, bạn mới có thể áp dụng các mẫu thiết kế. Thông thường, khi làm việc với mẫu thiết kế bạn sẽ tốn nhiều thời gian hơn cho việc trừu tượng hóa các khái niệm, hơn là làm việc với từng đối tượng cụ thể.

Đóng gói là gì?

Khi bạn đưa tất cả chức năng và dữ liệu vào trong một đối tượng, bạn đã “đóng gói” chúng. Đây là sức mạnh thực sự của việc lập trình hướng đối tượng. Bạn đã gỡ bỏ sự phức tạp của đối tượng khi đóng gói tất cả dữ liệu vào trong đối tượng đó. “Đóng gói” là cách bạn đã đưa hàng tá đường dây điện, ống, cảm biến nhiệt, đèn… vào trong một đối tượng là tủ lạnh.

Khi bạn đóng gói chức năng vào trong một đối tượng, bạn quyết định cách thức mà đối tượng giao tiếp với thế giới bên ngoài. Một cái tủ lạnh có thể một quản lý hàng tá thứ phức tạp bên trong, tuy nhiên người sử dụng chỉ quan tâm là nó có thể làm lạnh thức ăn hay không? Cùng cách thức đó, bạn cũng chỉ định đâu là chức năng, thuộc tính bên trong của tủ lạnh, đâu là chức năng thuộc tính nó giao tiếp với thế giới bên ngoài.

Có một ý tưởng đằng sau việc đóng gói – Bạn che giấu những thứ phức tạp bên trong đối tượng và tạo ra một giao diện đơn giản để đối tượng giao tiếp với phần mã còn lại của bạn. Mẫu thíêt kế cũng là một trường hợp đặc biệt của sự đóng gói. Bạn phải đóng gói những gì bạn cho là dễ thay đổi nhất Một số mẫu thiết kế xoay quanh ý tưởng là trích ra những phần mã dễ thay đổi nhất hoặc phần cần phải bảo trì nhiều và đóng gói chúng vào một đối tượng riêng để dàng dàng xử lý hơn. 

Đa hình là gì?

Một nền tảng khác của lập trình hướng đối tượng là “tính đa hình”. Đó là khả năng khi chúng ta lập trình một chức năng, chức năng đó có thể làm việc với nhiều loại đối tượng khác nhau, tùy thuộc vào kiểu thực sự của đối tượng đó trong thực tế. Ví dụ, bạn có thế viết mã để xử lý tất cả các hình dạng khác nhau như hình tròn, hình chữ nhật, tam giác.. vân vân. Mặc dù chúng có hình dạng khác nhau, chúng có chung một số hành động, ví dụ như chúng có chung chức năng là "Vẽ" Sử dụng tính đa hình, bạn có thể viết code để thực hiện nhiều hành động trên loại hình dáng mà bạn định làm việc và sau đó quyết định hình dạng thực tế nào sẽ được sử dụng khi chạy chương trình.

Đa hình ( nhiều hình thức) có nghĩa là mã bạn viết ra có thể sử dụng được nhiều kiểu của đối tượng mà bạn không phải viết lại mã.

Kế thừa là gì?

Đặc điểm cuối cùng và nổi bật của lập trình hướng đối tượng là tính kế thừa. Là qui trình mà một lớp có thể thừa hưởng toàn bộ phương thức và thuộc tính của một lớp khác.Đa hình thường xuất hiện khi bạn làm việc với mẫu thiết kế bởi vì mẫu thiết kế có xu hướng ủng hộ “kết hợp” hơn là “kế thừa” (Bạn sử dụng “kết hợp” khi đối tượng của bạn chứa đối tượng khác thay vì thừa hưởng từ chúng). Kế thừa chính là mối quan hệ “Is-a” (là một). Mẫu thiết kế- lập trình hướng đối tượng thường sử dụng việc “kết hợp” hơn là “kế thừa”. Khi bạn sử dụng “kết hợp”, mã của bạn chứa đựng một đối tượng khác, hơn là thừa hưởng từ chúng. Phương pháp này tỏ ra mềm dẻo, uyển chuyển để thích ứng với nhiều loại đối tượng trong cùng một cách, cùng một đoạn mã. Mẫu thiết kế thường dựa trên tính đa hình.

 

phương thức ảo

Là Các phương thức được định danh trong các đối tượng cha và được định nghĩa trong các đối tượng con khi chúng thừa kế từ đối tượng cha. Cho phép ta tạo ra bản quy định chung cho các đối tượng con. tạo thuận lợi cho viêc phát triển cung như thay đổi công nghệ sau này của phần mềm.

ví dụ: bạn có thể thiết kế một đối tượng để quy định về việc cấp dữ liệu cho một đối tượng nào đó. bạn sẽ đưa ra các phương thức phải có để cung cấp dữ liệu cho đối tượng đó.


Bài Liên Quan


Lập trình hướng đối tượng dành cho người mới bắt đầu

Lập trình hướng đối tượng dành cho người mới bắt đầu

Lập trình hướng đối tượng dành cho người mới bắt đầu

Phím tắt trong Visual Studio Code

Phím tắt trong Visual Studio Code

Bạn đang sử dụng Visual Studio Code để lập trình nhưng tốc độ chậm? Thao tác hơi thủ công? Bạn đang tìm kiếm các Phím tắt trong Visual Studio Code để học thao tác nhanh hơn?

Danh Mục

Bài Viết Mới Nhất