Qua bài viết này faravirusi.com xin chia sẻ với các bạn thông tin và kiến thức về oop là gì hot nhất hiện nay được bình chọn bởi người dùng
Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay. Hầu hết các ngôn ngữ lập trình hiện nay như Java, PHP, .NET, Ruby, Python… đều hỗ trợ OOP. Vậy lập trình hướng đối tượng là gì? Và các nguyên lý cơ bản trong OOP cần biết là gì?
- Functional Programming là gì?
Lập trình hướng đối tượng (OOP) là gì?
Lập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừu tượng hóa các đối tượng.
Đối tượng là những sự vật, sự việc mà nó có những tính chất, đặc tính, hành động giống nhau và ta gom góp lại thành đối tượng giống trong thực tế cuộc sống. Khi lập trình OOP, chúng ta sẽ định nghĩa các lớp (class) để gom (mô hình) các đối tượng thực tế.
Đối tượng
Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức.
- Thuộc tính chính là những thông tin, đặc điểm của đối tượng. Ví dụ: con người có các đặc tính như mắt, mũi, tay, chân…
- Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện. Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống, . . .
Lớp
Một lớp là một kiểu dữ liệu bao gồm các thuộc tính và các phương thức được định nghĩa từ trước. Đây là sự trừu tượng hóa của đối tượng. Khác với kiểu dữ liệu thông thường, một lớp là một đơn vị (trừu tượng) bao gồm sự kết hợp giữa các phương thức và các thuộc tính. Hiểu nôm na hơn là các đối tượng có các đặc tính tương tự nhau được gom lại thành một lớp đối tượng.
Sự khác nhau giữa đối tượng và lớp
Lớp bạn có thể hiểu nó như là khuôn mẫu, đối tượng là một thực thể thể hiện dựa trên khuôn mẫu đó. Ví dụ: Ta nói về loài chó, bạn có thể hiểu nó là class (lớp) chó có:
- Các thông tin, đặc điểm: 4 chân, 2 mắt, có đuôi, có chiều cao, có cân nặng, màu lông…
- Các hành động như: sủa, đi, ăn, ngủ…
Đối tượng thì chính là con chó Phú Quốc ta đang nuôi trong nhà cũng mang đặc tính của lớp chó.
Các nguyên lý cơ bản của OOP
Tính đóng gói (Encapsulation)
Note:
- Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng. Tức là mỗi lớp được xây dựng để thực hiện một nhóm chức năng đặc trưng của riêng lớp đó.
- Ngoài ra, đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ để bên ngoài không thể nhìn thấy.
Các thuộc tính và phương thức của đối tượng cần cho việc giải quyết bài toán đã được chọn ra sẽ được đóng gói vào một kiểu dữ liệu gọi là class. Nhằm che dấu thông tin khỏi các đối tượng bên ngoài, thuộc tính nào thì phương thức nấy. Tức là code bên ngoài không trực tiếp nhìn thấy và thay đổi trạng thái của đối tượng đó.
Nói chung trạng thái đối tượng không hợp lệ thường do: chưa được kiểm tra tính hợp lệ, các bước thực hiện không đúng trình tự hoặc bị bỏ qua nên trong OOP có một quy tắc quan trọng cần nhớ đó là phải luôn khai báo các trạng thái bên trong của đối tượng là private và chỉ cho truy cập qua các public/protected method/property.
Ví dụ ta thấy một viên thuốc chữa cảm. Chúng ta chỉ biết nó chữa cảm sổ mũi nhức đầu và một số thành phần chính, còn cụ thể bên trong nó có những hoạt chất gì thì hoàn toàn không biết.
Tính kế thừa (Inheritance)
Nó cho phép xây dựng một lớp mới dựa trên các định nghĩa của lớp đã có. Có nghĩa là 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, ngoài ra có thể mở rộng các thành phần kế thừa và bổ sung thêm các thành phần mới. Tái sử dụng mã nguồn 1 cách tối ưu, tận dụng được mã nguồn. Một số loại kế loại kế thừa thường gặp: đơn kế thừa, đa kế thừa, kế thừa đa cấp, kế thừa thứ bậc.
Khi bắt đầu xây dựng ứng dụng chúng ta sẽ bắt đầu thiết kế định nghĩa các lớp trước. Thông thường một số lớp có quan hệ với những lớp khác, chúng có những đặc tính giống nhau.
VD: 2 lớp Android, iPhone
Mỗi lớp đều đại diện cho một loại smartphone khác nhau nhưng lại có những thuộc tính giống nhau như gọi điện, nhắn tin, chụp hình. Thay vì sao chép những thuộc tính này, ta nên đặt chúng vào một lớp chung gọi là lớp cha. Chúng ta có thể định nghĩa lớp cha – trong trường hợp này là Smartphone và có những lớp con kế thừa từ nó, tạo ra một mối quan hệ cha/con.
Tính đa hình (Polymorphism)
Tính đa hình là một hành động có thể được thực hiện bằng nhiều cách khác nhau. Đây lại là một tính chất có thể nói là chứa đựng hầu hết sức mạnh của lập trình hướng đối tượng.
Hiểu một cách đơn giản hơn: Đa hình là khái niệm mà hai hoặc nhiều lớp có những phương thức giống nhau nhưng có thể thực thi theo những cách thức khác nhau.
Ví dụ như ở phần trên, mỗi một smartphone kế thừa từ lớp cha Smartphone nhưng có thể lưu trữ dữ liệu trên cloud theo những cách khác nhau. Android lưu trữ bằng Google Drive iPhone lưu trên iCloud.
Một ví dụ về đa hình trong thực tế. Ta có 2 con vật: chó, mèo. Cả 2 con vật này đều là lớp động vật. Nhưng khi ta bảo cả 2 động vật kêu thì con chó sẽ kêu gâu gâu, con mèo sẽ kêu meo meo.
Vậy trong ví dụ chó, mèo xem như là các đối tượng. 2 con vật có thể hiểu cùng kêu nhưng theo các cách khác nhau.
Tính trừu tượng (Abstraction)
Trừu tượng có nghĩ là tổng quát hóa một cái gì đó lên, không cần chú ý chi tiết bên trong. Nó không màng đến chi tiết bên trong là gì và người ta vẫn hiểu nó mỗi khi nghe về nó.
Ví dụ: Bạn chạy xe tay ga thì có hành động là tăng ga để tăng tốc, thì chức năng tăng ga là đại diện cho trừu tượng (abstraction). Người dùng chỉ cần biết là tăng ga thì xe tăng tốc, không cần biết bên trong nó làm thế nào.
Ở đây trong lập trình OOP, tính trừu tượng nghĩa là chọn ra các thuộc tính, phương thức của đối tượng cần cho việc giải quyết bài toán đang lập trình. Vì một đối tượng có rất nhiều thuộc tính phương thức, nhưng với bài toán cụ thể không nhất thiết phải chọn tất cả.
Ví dụ: Bài toán quản lý sinh viên chúng ta chỉ cần quản lý các thông tin như
- Họ tên
- Ngày sinh
- Giới tính
- …
- Điểm thi
mà lại không cần quản lý thêm các thông tin:
- Màu tóc
- Sở thích
- Chiều cao
Tại vì chúng thực sự không cần thiết.
Các ưu điểm của lập trình hướng đối tượng
- Dựa trên 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. Tối ưu và tái sử dụng code hiệu quả.
- Đảm bảo rút ngắn thời gian xây dựng hệ thống và tăng năng suất thực hiện.
- Sự xuất hiện của 2 khái niệm mới là lớp và đối tượng chính là đặc trưng của phương pháp lập trình hướng đối tượng. Nó đã giải quyết được các khuyết điểm của phương pháp lập trình hướng cấu trúc để lại. Ngoài ra 2 khái niệm này đã giúp biểu diễn tốt hơn thế giới thực trên máy tính.
Một số bài viết bạn có thể quan tâm:
- So sánh Interface và Abstract trong lập trình hướng đối tượng
- 4 tính chất của lập trình hướng đối tượng trong Java
- Tìm hiểu về nguyên lý “vàng” SOLID trong lập trình hướng đối tượng
Đừng bỏ lỡ các việc làm lập trình OOP hấp dẫn trên TopDev
Top 7 oop là gì tổng hợp bởi Faravirusi.com
OOP là gì? 4 đặc tính cơ bản của OOP
- Tác giả: itviec.com
- Ngày đăng: 07/23/2022
- Đánh giá: 4.77 (287 vote)
- Tóm tắt: Lập trình hướng đối tượng… · Đối tượng (Object) và Lớp…
- Khớp với kết quả tìm kiếm: Tính đóng gói cho phép che giấu thông tin và những tính chất xử lý bên trong của đối tượng. Các đối tượng khác không thể tác động trực tiếp đến dữ liệu bên trong và làm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức …
OOP là gì? Ưu và nhược điểm của lập trình hướng đối tượng – Vietnix
- Tác giả: vietnix.vn
- Ngày đăng: 08/12/2022
- Đánh giá: 4.44 (514 vote)
- Tóm tắt: OOP (viết tắt của Object-oriented programming) có nghĩa là lập trình hướng đối tượng. Đây là kỹ thuật cho phép lập trình viên tạo ra đối tượng ở …
- Khớp với kết quả tìm kiếm: Tính đóng gói cho phép che giấu thông tin và những tính chất xử lý bên trong của đối tượng. Các đối tượng khác không thể tác động trực tiếp đến dữ liệu bên trong và làm thay đổi trạng thái của đối tượng mà bắt buộc phải thông qua các phương thức …
Lập Trình Hướng Đối Tượng (OOP)
- Tác giả: viblo.asia
- Ngày đăng: 08/02/2022
- Đánh giá: 4.22 (553 vote)
- Tóm tắt: OOP là gì? 4 đặc tính cơ bản của OOP OOP ( Viết tắt của Object Oriented Progamming ) – Lập trình hướng đối tượng là một phương pháp lập trình dựa trên khái …
- Khớp với kết quả tìm kiếm: OOP ( Viết tắt của Object Oriented Progamming ) – Lập trình hướng đối tượng là một phương pháp lập trình dựa trên khái niệm lớp và đối tượng. OOP tập trung hơn vào cái đối tượng hơn là khai thác logic để thao tác chúng, giúp code dẽ quản lý, tái sử …
OOP là gì? Nguyên lý cơ bản của lập trình hướng đối tượng
- Tác giả: mona.media
- Ngày đăng: 01/27/2023
- Đánh giá: 4.14 (384 vote)
- Tóm tắt: OOP là gì? … OOP là từ viết tắt của cụm từ Object Oriented Programming. Nó có nghĩa tiếng Việt là lập trình hướng đối tượng. Đây là một phương pháp lập trình …
- Khớp với kết quả tìm kiếm: Ngôn ngữ lập trình Java chính là một trong các loại ngôn ngữ lập trình hướng đối tượng đa nền tảng độc lập cũng như đa mục đích. Thay vì thực hiện biên dịch mã nguồn thành mã máy trên những nền tảng cụ thể, thì với code của ngôn ngữ lập trình Java …
Lập trình hướng đối tượng (OOP) là gì? – KungFu Tech
- Tác giả: kungfutech.edu.vn
- Ngày đăng: 12/23/2022
- Đánh giá: 3.97 (339 vote)
- Tóm tắt: Lập trình hướng đối tượng (Object Oriented Programming – OOP) là một trong những kỹ thuật lập trình rất quan trọng và sử dụng nhiều hiện nay.
- Khớp với kết quả tìm kiếm: Ngôn ngữ lập trình Java chính là một trong các loại ngôn ngữ lập trình hướng đối tượng đa nền tảng độc lập cũng như đa mục đích. Thay vì thực hiện biên dịch mã nguồn thành mã máy trên những nền tảng cụ thể, thì với code của ngôn ngữ lập trình Java …
OOP là gì? Tổng hợp thông tin cơ bản về OOP mà lập trình viên nào cũng phải biết
- Tác giả: codegym.vn
- Ngày đăng: 09/15/2022
- Đánh giá: 3.66 (352 vote)
- Tóm tắt: 1. OOP là gì? OOP (viết tắt của Object Oriented Programming) mang ý nghĩa là lập trình hướng đối tượng. Đây là một kỹ …
- Khớp với kết quả tìm kiếm: Tính đa hình trong OOP có nghĩa là nhiều dạng. Trong lập trình, thuật ngữ này để chỉ việc một biến, một hàm hoặc phương thức tồn tại ở nhiều dạng khác nhau với nhiều chức năng. Lập trình viên có thể tận dụng tính đa hình trong lập trình hướng đối …
OOP (lập trình hướng đối tượng) là gì? Các nguyên lý cơ bản của lập trình hướng đối tượng
- Tác giả: itnavi.com.vn
- Ngày đăng: 11/04/2022
- Đánh giá: 3.58 (440 vote)
- Tóm tắt: Định nghĩa OOP là gì? … OOP (từ viết tắt của -Object Oriented Programming)_lập trình hướng đối tượng là một phương pháp lập trình dựa trên các …
- Khớp với kết quả tìm kiếm: C++ là ngôn ngữ lập trình thiên hướng đối tượng đã được phát triển với 2 phong cách: Lập trình hướng cấu trúc tương tự C và có thêm các phong cách mang hướng đối tượng. Nếu như bạn đã quen với các lập trình hướng cấu trúc đã có trước đó thì việc học …