14/08/2018, 13:27

Khái niệm hướng đối tượng (OOP) trong Java

[Khái niệm hướng đối tượng OOP trong Java] Chương này, chúng ta sẽ tìm hiểu các khái niệm cơ bản về Hướng đối tượng (OOP). Lập trình hướng đối tượng bao gồm nhiều khái niệm như tính kế thừa, gắn kết dữ liệu (Data Binding), tính đa hình, … Simula được xem như là ngôn ngữ lập trình ...

[Khái niệm hướng đối tượng OOP trong Java]Chương này, chúng ta sẽ tìm hiểu các khái niệm cơ bản về Hướng đối tượng (OOP). Lập trình hướng đối tượng bao gồm nhiều khái niệm như tính kế thừa, gắn kết dữ liệu (Data Binding), tính đa hình, …

Simula được xem như là ngôn ngữ lập trình hướng đối tượng đầu tiên. Là một hệ lập trình mà ở đó mọi thứ được biểu diễn dưới dạng một đối tượng, và được biết đến như là ngôn ngữ hướng đối tượng thực sự. Tuy nhiên, Smalltalk mới được xem như là ngôn ngữ lập trình hướng đối tượng thực sự đầu tiên.

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

Object (đối tượng) nghĩa là một thực thể trong thế giới thực, chẳng hạn như bàn, quả bóng, con bò, … Lập trình hướng đối tượng là một phương pháp để thiết kế một chương trình bởi sử dụng các lớp và các đối tượng. Nó làm đơn giản hóa việc duy trì và phát triển phần mềm bằng việc cung cấp một số khái niệm:

Lợi thế của OOP khi so với ngôn ngữ lập trình hướng thủ tục (procedure-oriented)

OOP giúp việc thiết kế, phát triển và bảo trì dễ dàng hơn trong khi với lập trình hướng thủ tục thì việc quản lý code là khá khó khăn nếu lượng code tăng lên. Điều này làm tăng hiệu quả có quá trình phát triển phần mềm.

OOP cung cấp Data Hiding (ẩn dữ liệu) trong khi đó trong hướng thủ tục một dữ liệu toàn cục có thể được truy cập từ bất cứ đâu.

OOP cung cấp cho bạn khả năng để mô phỏng các sự kiện trong thế giới thực một cách hiệu quả hơn. Chúng ta có thể cung cấp giải pháp cho các vấn đề trong thế giới thực nếu chúng ta sử dụng Lập trình hướng đối tượng.

Điểm khác nhau giữa OOP và OBP (Object-base programming)

Lập trình dựa trên đối tượng có tất cả đặc điểm của OOP ngoại trừ tính kế thừa. JavaScript và VBScript là các ví dụ về các ngôn ngữ lập trình dựa trên đối tượng.

0