STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

Lập tình hướng đối tượng trong C++ là gì?

Trong bài học này chúng ta sẽ tìm hiểu về lập trình hướng đối tượng trong C++, qua bài này sẽ giúp bạn hiểu khái niệm về đối tượng là gì? Cách liên tưởng đến đối tượng trong thực tế là như thế nào?

Lập trình hướng đối tượng là một khái niệm hoàn toàn mới với các bạn mới bắt đầu học lập trình. Tuy nhiên nó không quá khó so với lập trình thủ tục, nó chỉ là một hướng tiếp cận khác trong lập trình mà thôi. Và để hiểu rõ hơn thì trước tiên hãy cùng mình quay lại với kiến thức cũ nhé.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Lập trình hướng đối tượng C++ là gì?

Lập trình hướng đối tượng là thao tác phân tích quy đổi những sự vật, sự việc, vật thể trong bài toán thành những đối tượng trong lập trình, giúp việc quản lý, phát triển, mở rộng chương trình được đơn giản hơn.

Lập trình hướng thủ tục là cách sử dụng hàm để tạo ra một hệ thống code có logic, những hàm có liên quan với nhau sẽ được đặt vào trong một file, và chúng không thể liên kết chặt chẽ với nhau.

Ví dụ: Hai hàm cần sử dụng chung một biến lưu trữ, lúc này bạn phải sử dụng biến đó như một dạng tham chiếu thì trong thân của hai hàm đó mới sử dụng dữ liệu của nhau được.

Tuy nhiên khi áp dụng vào lập trình hướng đối tượng thì ta sử dụng một khái niệm mới, đó là thuộc tính của đối tượng, nó sẽ được lưu trữ và có thể gọi trong bất kì một phương thức (hàm) nào bên trong đối tượng đó.

Trong thực tế, mỗi sự vật, sự việc, đối tượng đều có thể quy ra thành đối tượng trong lập trình. Ví dụ bạn cần viết chương trình quản lý xe đạp thì xe đạp ta có thể xem là một đối tượng, nó có các thuộc tính như: bánh xe, yên xe, tăm xe, ... và có các hành động như chạy, đạp, té ngã ..

2. Các khái niệm trong lập trình hướng đối tượng C++

Lập trình hướng đối tượng (hay nói trong tiếng anh là Object Oriented Programming - OOP) là một mô hình sử dụng lớp (class) và đối tượng (object) trong chương trình hay nói cách khác là mô hình hóa chương trình chúng ta bằng những lớp, đối tượng.

Những khái niệm là chúng ta cần phải biết trong lập trình hướng đối tượng đó là:

  • Lớp (Class)
  • Đối tượng (Object)
  • Thừa kế (Inheritance)
  • Đa hình (Polymorphism)
  • Trừu tượng (Abstraction)
  • Đóng gói (Encapsulation)

Trước tiên chúng ta sẽ cùng tìm hiểu tổng quan về từng khái niệm một liên quan đến lập trình hướng đối tượng trong C++.

Object

Một thực thể có trạng thái và hành vi thì được gọi như là một đối tượng. Ví dụ đối tượng là những gì chúng ta có thể nhìn thấy và sờ được trong thực tế như cái bàn, cây viết, chiếc xe, con mèo, ...

Cụ thể là đối tượng chiếc xe sẽ có các trạng thái có thể như sau:

  • Màu
  • Chiều dài
  • Chiều rộng
  • Chiều cao
  • Trọng lượng
  • Nhà sản xuất

Và có các hành vi có thể như sau:

  • Chạy
  • Nạp xăng
  • Thắn

Tùy vào ngữ cảnh của chương trình mà chúng ta phân tích trạng thái và hành vi cho phù hợp, chúng ta chỉ lấy những trạng thái và hành vi mà chúng ta cần quan tâm tới trong chương trình của chúng ta, không cần phải lấy hết tất cả trạng thái và hành vi của đối tượng có thể có.

Ví dụ cùng là đối tượng con người trong môi trường trường học sẽ có trạng thái cần quan tâm như là MSSV, tên, lớp, điểm rèn luyện, điểm học tập, ... và có hành vi cần quan tâm như học, tham gia hoạt động ngoại khóa, thi cuộc thi học sinh giỏi, ...

Và cũng là con người đó trong môi trường cuộc thi hoa hậu sẽ có trạng thái cần quan tâm như như tên, tuổi, chiều cao, cân nặng, dân tộc, ... và hành vi cần quan tâm như ứng xử, nói tiếng anh, trình diễn thời trang, ...

Class

Tập hợp các đối tượng có điểm tương đồng thì được gọi đó là lớp (class), hay còn có thể nói lớp là khuôn mẫu để tạo ra đối tượng. Đối tượng là một thể hiện của lớp.

Ví dụ chúng ta có lớp học sinh, từng đối tượng của lớp học sinh là từng học sinh cụ thể như Nguyễn Văn A, Nguyễn Văn B, Nguyễn Văn C, ... Lớp động vật, các đối tượng của lớp động vật đó là con mèo, con chó, con heo, ...

Inheritance

Một đối tượng có tất cả trạng thái và hành vi của đối tượng cha thì được gọi là thừa kế.

Polymorphism

Khi cùng một nhiệm vụ mà thực hiện nhiều cách khác nhau thì được gọi là đa hình.

Ví dụ chúng ta có nhiệm vụ kêu của động vật nhưng con chó thì kêu gâu gâu, con mèo thì kêu meo meo, con heo thì kêu ọc ọc...

Trong C++, sử dụng overloading overriding để thực hiện tính đa hình. Những khái niệm đề overloading overriding chúng ta sẽ cùng tìm hiểu kỹ hơn ở các bài sau nhé. Bài này các bạn chỉ biết vậy thôi, không cần quan tâm nó là gì nhé.

Abstraction

Ẩn đi các chi tiết bên trong và chỉ hiển thị các chức năng bên ngoài thì được gọi là trừu tượng.

Ví dụ cuộc gọi điện thoại, chúng ta không hề biết bên trong nó xữ lý thể nào để chúng ta có thể nói chuyện được với nhau, chúng ta chỉ biết chức năng bên ngoài của nó là có thể nói chuyện được với nhau.

Trong C++ sử dụng lớp trừu tượng và interface để thực hiện tính trừu tượng. Và chúng ta khoan hãy quan tâm lớp trừu tượng và interface là gì nhé.

Encapsulation

Gói dữ liệu và thông tin thành một đơn vị được gọi là đóng gói.

Ví dụ trong một công ty có các phòng ban như kế toán, lập trình, nhân sự thì những phòng ban chỉ có thể truy cập các phòng ban khác thông qua một cách thức được public sẳn cho các phòng ban khác truy cập.

Trong C++ sử dung access modifiers để thực hiện tính đóng gói. Và chúng ta khoan hãy quan tâm access modifiers là gì nhé. Mình sẽ nói trong các bài tiếp theo.

3. Ưu điểm của hướng đối tượng so với hướng thủ tục

Ưu điểm của lập trình hướng đối tượng so với lập trình hướng thủ tục như sau:

  • OOP làm cho việc phát triển và bảo trì dễ dàng hơn, trong khi ngôn ngữ lập trình hướng thủ tục, không dễ quản lý nếu dự án lớn và code ngày càng nhiều.
  • OOP ẩn dữ liệu đi, trong khi ngôn ngữ lập trình hướng thủ tục, dữ liệu toàn cục có thể được truy cập từ bất cứ đâu.
  • OOP cung cấp khả năng mô phỏng sự kiện trong thế giới thực hiệu quả hơn nhiều, chúng ta có thể giải quyết nhiều vấn đề từ thực tế nếu chúng ta sử dụng ngôn ngữ lập trình hướng đối tượng.

4. Kết luận

Như vậy trong bài học hôm nay cho chúng ta cái nhìn tổng quan về các khái niệm liên quan đến lập trình hướng đối tượng. Có thể đến đây các bạn mới học còn mơ hồ về nó, tuy nhiên các bạn đừng quá lo lắng, chúng ta sẽ tìm hiểu chi tiết từng khái niệm một trong các bài học tiếp theo.

Và chúng ta kết thúc bài học này ở đây nhé. Trong bài tiếp theo chúng ta sẽ cùng tìm hiểu về đối tượng (object) và lớp (Class) trong C++. Các bạn nhớ theo dõi nhé.

Cùng chuyên mục:

Cách nhân hai số trong ngôn ngữ C

Cách nhân hai số trong ngôn ngữ C

Cách cộng hai số nguyên trong C

Cách cộng hai số nguyên trong C

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Tổng hợp hơn 1000 bài tập C / C++ có lời giải

Bài này sẽ tổng hợp hơn 1000 bài tập C / C++ có lời giải…

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện ctime C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cstdio C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cctype C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstring C / C++

Các hàm trong thư viện cstdlib C/C++

Các hàm trong thư viện cstdlib C/C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm nhập xuất IO (iostream) trong C / C++

Các hàm toán học (math) trong C / C++

Các hàm toán học (math) trong C / C++

Nếu bạn đang học C++ căn bản thì phải biết công dụng của những hàm…

Bài tập vòng lặp while và do while trong C++

Bài tập vòng lặp while và do while trong C++

Nếu một bài toán được giải bằng vòng lặp while thì bạn hoàn toàn có…

Bài tập vòng lặp for trong C++ có lời giải

Bài tập vòng lặp for trong C++ có lời giải

Vòng lặp for C++ rất quan trọng, nó được sử dụng rất nhiều khi xử…

Bài tập if else trong C++ (có đổi sang switch case)

Bài tập if else trong C++ (có đổi sang switch case)

Để thành thạo hai lệnh rẻ nhánh if else và switch case thì bạn phải…

Tìm hiểu cấu trúc mảng (array) trong C++

Tìm hiểu cấu trúc mảng (array) trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi trong C++

Toán tử ba ngôi thực ra là cách rút gọn code của lệnh if else,…

Các toán tử trong C++

Các toán tử trong C++

Toán tử đóng vai trò rất quan trọng trong lập trình, nó giúp chúng ta…

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

Ngôn ngữ C++ là gì? Dùng làm gì trong công nghệ thông tin?

C++ là một ngôn ngữ lập trình phổ biến và mạnh mẽ có kiểu dữ…

Đọc ghi file trong C

Đọc ghi file trong C

Đa số sinh viên Việt Nam học lập trình C là để luyện tư duy…

Kiểu Union trong C

Kiểu Union trong C

Union có cách khai báo giống như struct, nhưng kích thước của nó sẽ lấy…

Hàm đệ quy trong ngôn ngữ C

Hàm đệ quy trong ngôn ngữ C

Giải thuật đệ quy nói chung và trong ngôn ngữ C nói riêng thì hàm…

Top