Các bạn thân mến! Bài học hôm nay là bài học đầu tiên chúng ta sẽ cùng tìm hiểu về lập trình hướng đối tượng trong C++. Các bạn nào mới bắt đầu lập trình hoặc đã tiếp cận đến ngôn ngữ lập trình như Pascal, C thì đã quen với cách lập trình thủ tục.

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.

1. Lập trình hướng đối tượng trong 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 và overriding để thực hiện tính đa hình. Những khái niệm đề overloading và 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.

Ưu điểm

Ư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.

2. 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.

Nguồn:https://freetuts.net

 

 

ĐĂNG KÝ THÀNH VIÊN

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

Được quan tâm nhiều nhất

  • Apple Watch Series 4 Teardown

  • Apple Watch Series 5 Teardown - Always on Display Explained

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

  • Phim Ngắn Đột Kích - Phiên bản 10 năm trước

Bạn thấy bài viết này thế nào?
Thể hiện yêu thương tác giả ở đây nhé!

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 5,987

SMod: 1,289 hướng dẫn đã chia sẻ

Team

Lập Trình Thành viên của Lập Trình

1 Thành viên

1,289 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

After viewing your support content - Please click advertisement for Support & Donate us team! Đóng