Lập trình hướng đối tượng người sử dụng (oop) là nền tảng cho hầu hết các thiết kế pattern hiện tại nay. Vậy lập trình hướng đối tượng người sử dụng oop là gì?

Khái niệm thiết kế hướng đối tượng người tiêu dùng - OOP

Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là 1 trong những mẫu hình lập trình dựa trên khái niệm "công nghệ đối tượng", nhưng mà trong đó, đối tượng chứa đựng các dữ liệu, trên những trường, hay được hotline là những thuộc tính; và mã nguồn, được tổ chức triển khai thành các phương thức.

Phương thức hỗ trợ cho đối tượng rất có thể truy xuất và hiệu chỉnh những trường dữ liệu của đối tượng người tiêu dùng khác, mà đối tượng người tiêu dùng hiện trên có liên can (đối tượng được cung cấp các cách tiến hành "this" hoặc "self").

Bạn đang xem: Lập trình hướng đối tượng oop là gì?

OOP xử lý các việc từ nhỏ tuổi đến lớn bằng cách quan sát và tưởng tượng đều hành động, điểm sáng của thực thể thật bên cạnh đời sinh sống và dẫn vào lập trình như một đối tượng người sử dụng ảo. Miêu tả qua các lớp (class), đối tượng người tiêu dùng (Object) mà hành vi là những hàm(method) còn đặc điểm đó là các biến(variable)

Nói một cách hoa mỹ hơn

OOP is the art of observing of objects in their natural appearance & trying khổng lồ capture the functional abstractnesses in descriptive programming way, & to visualize them as virtual-workable objects

_OOP_ là nghệ thuật quan giáp các đối tượng người dùng trong thoải mái và tự nhiên rồi nỗ lực nắm bắt những hành vi cùng công dụng của chúng và màn trình diễn dưới dạng đối tượng ảo trong ngôn từ lập trìnhVí dụ:__

Xe (đời thực)-> class Xe(lập trình) -> Đối tượng Xe

Trong đó

Xe thật thì bao gồm màu, số bánh, thương hiệu xe-> Class xe (Biến màu, biến đổi Số bánh. Biến chuyển Tên)-> Đối tượng xe(Màu,Số bánh, tên)

Đặc điểm của lập trình sẵn hướng đối tượng (oop)

Abstraction : tính trừu tượng.Encapsulation : tính đóng gói.Inheritance : tính kế thừa.Polymorphism : tính đa hình.

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

Tính gói gọn (encapsulation) và bít giấu tin tức (information hiding)

Trước khi mày mò tính đóng gói và bịt giấu thông tin, chúng ta nên mày mò cú pháp ngôn ngữ những thể hiện đặc thù public, private, protected …

*

Hình hình ảnh trên là một ví dụ về tính đóng gói và che giấu thông tin trong lập trình OOP

Như bạn thấy, viên dung dịch được bao bọc bởi lớp vỏ chính là ClassMethod cùng Variable là phần nhiều thành phần phía bên trong viên thuốc, được bao lại, bịt giấu đi và quan yếu nhìn hoặc áp dụng nếu Class phía bên ngoài không mang đến phép.

Như vậy tính đóng góp gói có thể hiểu: Gói dữ liệu (data, ~ biến, trạng thái) với mã chương trình (code, ~ phương thức) thành một cục hotline là lớp (class) để dễ quản lí. Trong viên này hay data cực kỳ rối rắm, ko tiện cho những người không bao gồm trách nhiệm truy cập trực tiếp, buộc phải thường ta sẽ bít dấu data đi, chỉ nhằm lòi cách làm ra ngoài

Tính thừa kế (inheritance) và đa hình(Polymorphism)

*

*

Khái niệm: thừa kế là cách tạo lớp bắt đầu từ các lớp sẽ được định nghĩa từ trước

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

Giả sử ta gồm 2 class A với B:

Class A: lớp cơ sở (lớp cha) - supper classClass B: lớp dẫn xuất (lớp con) - sub class

Class B có thể dùng được phần nhiều các phương thức (hàm) và các thuộc tính(biến) của lớp A nước ngoài trừ những các cách làm và các hàm các tính chất private.

Cài đặt: để setup lớp thừa kế ta sử dụng toán tử “:” (trong C++, C#) và Extends (Java). Ví dụ như B thừa kế A viết là: B:A

class A ....class B:A // hoặc B extends A (java) ...Chú ý:

Một lớp thân phụ có thể có rất nhiều lớp conĐến lượt mình mỗi lớp nhỏ lại hoàn toàn có thể có các con khácTrong C++ có thể chấp nhận được đa kế thừa (một lớp con rất có thể nhận rộng 1 lớp cha)Java chỉ được cho phép mỗi lớp con kế thừa 1 và duy nhất lớp cha/ trường đoản cú khóa implement sẽ sửa chữa cho đa kế thừa từ C++

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

Có câu “program to lớn interfaces, not to lớn concrete implementations”. Nghĩa là khi viết chương trình theo phong thái hướng đối tượng, khi xây cất các đối tượng, ta bắt buộc rút tỉa ra những đặc thù của chúng, rồi trừu tượng hóa thành các interface, và kiến tạo xem chúng sẽ liên hệ với nhau như thế nào. Nói giải pháp khác, họ định ra các interface và những contract nhưng chúng bắt buộc thỏa mãn.

Nói 1 cách đơn giản thì bạn chỉ cần khai báo hàm vào lớp thân phụ (access modifier, phương thức trả về, thương hiệu hàm, thông số truyền vào). Còn định nghĩa trong phần thân hàm chúng ta không cần vồ cập đến. Vày nó sẽ tiến hành override lại từ class kế thừa.

Định nghĩa: Đây là năng lực của chương trình bỏ lỡ hay không chú ý đến một vài khía cạnh của thông tin mà nó đang trực tiếp làm việc lên, nghĩa là nó có tác dụng tập trung vào rất nhiều cốt lõi quan trọng (chỉ khai báo). Mỗi đối tượng người dùng phục vụ như là một trong “động tử” hoàn toàn có thể hoàn tất các quá trình một cách nội bộ, báo cáo, thay đổi trạng thái của nó và liên hệ với các đối tượng người tiêu dùng khác mà không cần cho thấy thêm làm phương pháp nào đối tượng người sử dụng tiến hành được các thao tác (sự override từ bỏ lớp con). đặc thù này thường được gọi là sự việc trừu tượng của dữ liệu.

Xem thêm: Device Là Gì Trong Tiếng Việt? Nghĩa Của Từ Device

Phương thức ảo là cách làm được quan niệm ở lớp cửa hàng (lớp cha) mà những lớp dẫn xuất (lớp con) ước ao sử dụng đề nghị định nghĩa lại. Sử dụng từ khoá virtual (c++) tuyệt abstract (java)để khai báo cách tiến hành ảo:Trong Class ảo rất có thể có cách tiến hành ảo hoặc ko nhưng phương thức ảo bắt buộc phải ở vào class ảophương thức ảo không chứa bodyKhi kế thừa class ảo, sẽ phải viết lại phương thức ảo của nó

Tính nhiều hình (polymorphism)

poly (nhiều) + phism(body) = các hình thái. Tính nhiều hình được diễn tả qua việc viết lại những method(hàm) tự class cha thông qua class kế thừa nó hoặc câu hỏi triển khai các interface.