- vừa được xem lúc

Cơ bản về Lập trình hướng đối tượng

0 0 13

Người đăng: Duc Nguyen

Theo Viblo Asia

Hướng đối tượng (tiếng anh: Object Oriented Programming) là một phương pháp lập trình dựa trên khái niệm về lớp và đối tượng. OOP tập trung vào các đối tượng hơn là logic để thao tác với chúng, giúp dễ quản lý, sử dụng và bảo trì code. Vì đây là một phần rất quan trọng nên bất kỳ Developer nào muốn đi trên con đường lập trình đều phải biết về OOP. Đặc biệt trong các buổi phỏng vấn việc IT thường có các câu hỏi liên quan đến nội dung OOP này.

Trong bài này mình sẽ đề cập tới:

  • Đối tượng (Object) và Lớp (Class) trong OOP là gì?
  • Các đặc tính cơ bản của OOP

Đối tượng (Object) và Lớp (Class) trong Hướng đối tượng là gì?

Đối tượng (Object)

Đối tượng trong OOP bao gồm 2 thành phần chính:

  • Thuộc tính (Attribute): thông tin, đặc điểm của đối tượng
  • Phương thức (Method): hành vi của đối tượng

Ví dụ: Đối tượng là Cat (con mèo) sẽ có

  • Thuộc tính: giới tính, màu lông, tuổi...
  • Phương thức: ăn, ngủ, bắt chuột...

Lớp (Class)

Class là trừu tượng hóa của đối tượng. Những Object có những đặc tính tương tự nhau sẽ được tập hợp thành một lớp. Lớp cũng bao gồm Attribute (thuộc tính) và Method (phương thức). Một Object được xem là một thực thể (instance) của Class.

Tiếp nối ví dụ phần Object thì class Cat có các đối tượng có thể là: Mèo tam thể, Mèo mun...

Các đặc tính cơ bản của OOP

1. Tính đóng gói (Encapsulation)

oop-la-gi-1.jpg

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 công khai do đối tượng đó cung cấp. Tính chất này giúp tăng tính bảo mật cho đối tượng và tránh tình trạng dữ liệu bị hư hỏng ngoài ý muốn.

2. Tính kế thừa (Inheritance)

Tính kế thừa cho phép xây dựng một lớp mới (lớp Con), kế thừa và tái sử dụng các thuộc tính, phương thức dựa trên lớp cũ (lớp Cha) đã có trước đó.

Các lớp Con kế thừa toàn bộ thành phần của lớp Cha và không cần phải định nghĩa lại. Lớp Con có thể mở rộng các thành phần kế thừa hoặc bổ sung những thành phần mới.

Ví dụ:

  • Lớp cha là Cat có các thuộc tính: giới tính, màu lông, tuổi
  • Các lớp con như Mèo tam thể, Mèo mun cũng có các thuộc tính như lớp cha

3. Tính đa hình (Polymorphism)

Tính đa hình trong lập trình OOP cho phép các đối tượng khác nhau thực thi chức năng giống nhau theo những cách khác nhau.

Ví dụ: Lớp Động vật có các Phương thức (method) là speak(). Với Class con Cat thì thực thi phương thức speak() sẽ "meo meo". Còn Class con Dog thì thực thi phương thức speak() sẽ "gâu gâu".

4. Tính trừu tượng (Abstraction)

Tính trừu tượng giúp loại bỏ những thứ phức tạp, không cần thiết của đối tượng và chỉ tập trung vào những gì cốt lõi, quan trọng.

Ví dụ: Quản lý Sinh viên thì chỉ cần quan tâm đến những thông tin như:

  • Mã SV
  • Họ tên
  • Ngày sinh
  • Giới tính

Chứ không cần phải quản lý thêm thông tin về:

  • Chiều cao
  • Cân nặng
  • Sở thích

Bình luận

Bài viết tương tự

- vừa được xem lúc

Chương 5 Object oriented programming

Chương 5 Object oriented programming. Tôi lần đầu tiên được giới thiệu về lập trình hướng đối tượng ở trường cao đẳng nơi tôi đã có một giới thiệu tóm tắc về c++.

0 0 24

- vừa được xem lúc

SOLID trong OOP và ví dụ dễ hiểu bằng Python

Thế SOLID là gì? SOLID là cứng . Đùa tí Đây là các nguyên lý thiết kế trong OOP, được ghép lại từ các chữ cái đầu của Single Responsibility, Open Close Principle, Liskov Substitution Principle, Interf

0 0 27

- vừa được xem lúc

002: Object và Class trong OOP

Bài viết nằm trong series Object-Oriented Design from real life to software. Về mặt ý tưởng, OOP nói đến việc áp dụng từ thế giới thực vào thế giới lập trình.

0 0 30

- vừa được xem lúc

001: Procedural programming và Object-Oriented programming

Bài viết nằm trong series Object-Oriented Design from real life to software. 1) Procedural programming.

0 0 31

- vừa được xem lúc

003: Các tính chất cơ bản trong OOP P1

Bài viết nằm trong series Object-Oriented Design from real life to software. . . Abstraction.

0 0 41

- vừa được xem lúc

004: Các tính chất cơ bản trong OOP P2

Bài viết nằm trong series Object-Oriented Design from real life to software. . . Inheritance.

0 0 37