4 khái niệm bạn phải biết khi lập trình hướng đối tượng

Lập trình hướng đối tượng (Object-oriented programming) là một phương pháp quen thuộc đối với các chuyên gia phát triển phần mềm. Sau đây là 4 khái niệm bạn bắt buộc phải biết để hiểu về lập trình hướng đối tượng.

1. Class (Lớp)

Về cơ bản, lớp là các kiểu dữ liệu do người dùng tự định nghĩa. Lớp là nơi chúng ta tạo ra một bản thiết kế (blueprint) mẫu cho cấu trúc của các đối tượng. Nội dung của lớp bao gồm phương thức (method) và thuộc tính (attribute). Từ bản thiết kế này, chúng ta có thể khởi tạo những đối tượng riêng lẻ khác nhau. Nói cách khác, lớp là thứ ta dựa vào để tạo ra các đối tượng khác nhau.

Dưới đây là một ví dụ về lớp sử dụng ngôn ngữ JavaScript:

Ví dụ về lớp trong lập trình hướng đối tượng.
Ví dụ về lớp trong lập trình hướng đối tượng.

Trong ví dụ trên, chúng ta có lớp “Dog” (Chó) với các thuộc tính là “Name” (Tên) và “Birthday” (Ngày sinh).

Lớp chính là khuôn mẫu để tạo mô hình cho một đối tượng. Dựa vào lớp “Dog”, lập trình viên sau đó có thể tạo ra những đối tượng cụ thể, có tên và ngày sinh khác biệt, chẳng hạn như “Dog 1”, “Dog 2”.

2. Objects (Đối tượng)

Tất nhiên, trong lập trình hướng đối tượng thì bắt buộc phải có đối tượng, như tên gọi của nó. Một đối tượng sẽ bao gồm trạng thái và hành vi cụ thể.

Trạng thái của đối tượng được xác định bởi thuộc tính, tức là những thông tin mà bạn muốn lưu trữ trong đối tượng. Hành vi của đối tượng chính là phương thức, tức là những điều mà bạn muốn đối tượng thực hiện.

Quy trở lại với ví dụ trên, khi một lớp “Dog” được đã được khởi tạo. Nếu chúng ta tiếp tục chạy đoạn mã sau:

  • const rufus = new Dog(“Rufus”, “2/1/2017”);

Khi đó, sẽ có một đối tượng mới được tạo ra tên là “rufus”. Đồng thời, hàm khởi tạo đối tượng cũng sẽ gán giá trị tên và ngày sinh cho đối tượng. Cụ thể, tên của đối tượng này là “rufus” và có ngày sinh là “2/1/2017”.

3. Attributes (Thuộc tính)

Có thể hiểu, thuộc tính chính là những thông tin cụ thể được lưu trữ. Thuộc tính sẽ được định nghĩa trong lớp. Khi một đối tượng được khởi tạo, thì sẽ có những dữ liệu khác nhau để lưu trữ thuộc tính của chúng. Lúc này, thuộc tính sẽ giúp chúng ta phân biệt giữa đối tượng này với đối tượng khác.

Trong ví dụ trên, đối tượng “Dog” có hai thuộc tính là “Name” (Tên) và “Birthday” (Ngày sinh). Tất nhiên, sẽ có trường hợp nhiều đối tượng có tên và ngày sinh giống nhau. Lúc đó, ta lại cần thêm một thuộc tính khác để phân biệt chúng.

4. Methods (Phương thức)

Trong lập trình hướng đối tượng, phương thức đại diện cho các hành vi. Cụ thể, phương thức có thể yêu cầu đối tượng thực hiện hành động, trả lại thông tin về một đối tượng hoặc cập nhật dữ liệu của một đối tượng.

Phương thức sẽ bao gồm những đoạn mã được xác định trong lớp. Khi một đối tượng được tạo ra, thì đối tượng này có thể gọi đến các phương thức đã được định nghĩa trước từ trong lớp.

Ví dụ, xét trong đoạn mã dưới đây, phương thức “bark()” (sủa) đã được định nghĩa trong lớp “Dog”. Khi đó, đối tượng “rufus” hoàn toàn có thể gọi đến phương thức “bark()”.

Ví dụ về phương thức trong lập trình hướng đối tượng.
Ví dụ về phương thức trong lập trình hướng đối tượng.

Ý nghĩa của phương thức trong lập trình hướng đối tượng

Phương thức thường sửa đổi, cập nhật hoặc xóa dữ liệu. Tuy nhiên, có những phương thức được thực hiện mà không thay đổi bất kỳ dữ liệu nào.

Ví dụ: phương thức “bark()” không cập nhật bất kỳ dữ liệu nào bởi vì hành động của phương thức này không sửa đổi bất kỳ thuộc tính nào của lớp “Dog” (tên hoặc ngày sinh).

Thông qua việc dùng phương thức, lập trình viên sẽ tận dụng được khả năng tái sử dụng của mã, đồng thời giữ cho các chức năng gói gọn bên trong một đối tượng. Đây là một điểm hữu ích cho việc gỡ lỗi, vì khi gỡ lỗi, ta chỉ cần tìm đến một nơi duy nhất thay vì nhiều nơi.

Đối tượng, phương thức, lớp và thuộc tính là 4 nội dung cơ bản của một chương trình được lập trình theo hướng đối tượng mà lập trình viên cần nắm rõ. Hy vọng qua bài viết này, bạn đã hiểu rõ hơn về 4 khái niệm bắt buộc phải biết trong lập trình hướng đối tượng.

Tham khảo: Educative.io.

Tìm hiểu thêm:

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
February 22, 2021
Share this post to:
Tags:
0 Comments
Inline Feedbacks
View all comments
Các bài viết liên quan
4 khóa học lập trình hướng đối tượng miễn phí cho người mới

4 khóa học lập trình hướng đối tượng miễn phí cho người mới

Nếu bạn muốn theo nghề IT thì sớm muộn cũng phải học lập trình hướng đối tượng. Đây là một kiến thức cơ bản, bắt buộc phải biết. Bài viết sẽ chia sẻ với bạn 4 khóa học miễn phí, phù hợp với người mới bắt đầu. Tìm hiểu thêm: Bài tập ôn luyện Lập […]
Phương pháp lập trình hướng đối tượng và các ưu, nhược điểm

Phương pháp lập trình hướng đối tượng và các ưu, nhược điểm

Từ lâu phương pháp lập trình hướng đối tượng đã không còn xa lạ với các lập trình viên. Bài viết sẽ chia sẻ với các bạn một số ưu điểm và nhược điểm của phương pháp này. Tìm hiểu thêm: Bài tập ôn luyện Lập trình hướng đối tượng từ cơ bản đến nâng […]
4 khái niệm bạn phải biết khi lập trình hướng đối tượng

4 khái niệm bạn phải biết khi lập trình hướng đối tượng

Lập trình hướng đối tượng (Object-oriented programming) là một phương pháp quen thuộc đối với các chuyên gia phát triển phần mềm. Sau đây là 4 khái niệm bạn bắt buộc phải biết để hiểu về lập trình hướng đối tượng. Mục lục1. Class (Lớp)2. Objects (Đối tượng)3. Attributes (Thuộc tính)4. Methods (Phương thức) 1. […]
Bài tập lập trình hướng đối tượng cơ bản, nâng cao

Bài tập lập trình hướng đối tượng cơ bản, nâng cao

Để nâng cao kỹ năng Lập trình hướng đối tượng – Object-Oriented Programming (OOP), bạn cần liên tục rèn luyện, thực hành. Trong bài viết hôm nay, Got It sẽ chia sẻ tới bạn các bài tập lập trình hướng đối tượng. Các bài tập này sẽ giúp bạn ôn lập trình hướng đối tượng […]
Inversion of control là gì? Tìm hiểu Dependency Inversion

Inversion of control là gì? Tìm hiểu Dependency Inversion

Các khái niệm như Dependency Injection, Dependency Inversion hay Inversion of Control là gì đều là những câu hỏi khó kể cả với những kỹ sư kỳ cựu. Nhiều bạn dù đã đi làm vài năm nhưng vẫn chưa thực sự hiểu rõ về các khái niệm này mà chỉ biết sử dụng chúng trong […]
Bộ 7 câu hỏi phỏng vấn lập trình hướng đối tượng

Bộ 7 câu hỏi phỏng vấn lập trình hướng đối tượng

Với nền kinh tế hiện đại ngày nay, lập trình viên đang là một nghề được nhiều doanh nghiệp săn đón. Bộ câu hỏi phỏng vấn lập trình hướng đối tượng được chia sẻ sau đây sẽ hỗ trợ bạn nắm bắt cơ hội nghề nghiệp. Cùng Got It tìm hiểu nhé. Mục lục1. Lập […]