Tìm hiểu về các đặc điểm trong lập trình hướng đối tượng C++ qua các ví dụ

Bạn đang tìm hiểu học lập trình c++ cho người mới ? Khám phá ngay bài viết này để tìm hiểu những đặc điểm quan trọng trong lập trình hướng đối tượng C++ mà bạn cần phải biết nhé.

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

Lập trình hướng đối tượng trong C++ (Object-Oriented Programming - OOP) là một phương pháp lập trình dựa trên việc mô hình hóa các thực thể trong thế giới thực thành các đối tượng (object). Mỗi đối tượng là một thực thể bao gồm dữ liệu (thuộc tính) và hành vi (phương thức).

Như vậy có thể hiểu ngắn gọn: Lập trình hướng đối tượng trong C++ là kỹ thuật lập trình sử dụng các lớp (class) và đối tượng (object) để tổ chức và quản lý mã nguồn, giúp chương trình dễ hiểu, dễ bảo trì và mở rộng.


Các đặc điểm của lập trình hướng đối tượng C++

Dưới đây là 4 đặc điểm chính của OOP trong C++ cùng với ví dụ minh họa chi tiết cho từng đặc điểm như sau:

1. Tính đóng gói (Encapsulation)
Đóng gói là việc gói gọn dữ liệu và các phương thức thao tác trên dữ liệu đó trong cùng một lớp, đồng thời che giấu thông tin nội bộ khỏi bên ngoài.
Ví dụ:

#include <iostream>
using namespace std;
 
class BankAccount {
private:
    int balance; // dữ liệu được đóng gói
 
public:
    BankAccount(int initial) {
        balance = initial;
    }
 
    void deposit(int amount) {
        if (amount > 0) balance += amount;
    }
 
    void displayBalance() {
        cout << "Balance: " << balance << endl;
    }
};
 
int main() {
    BankAccount acc(1000);
    acc.deposit(500);
    acc.displayBalance(); // Output: Balance: 1500
    return 0;
}
Trong ví dụ này balance là biến private, chỉ có thể truy cập thông qua các phương thức public như deposit và displayBalance.

2. Tính kế thừa (Inheritance)
Kế thừa cho phép một lớp con kế thừa các thuộc tính và phương thức từ lớp cha.
Ví dụ:

#include <iostream>
using namespace std;
 
class Animal {
public:
    void eat() {
        cout << "This animal eats food." << endl;
    }
};
 
class Dog : public Animal {
public:
    void bark() {
        cout << "The dog barks." << endl;
    }
};
 
int main() {
    Dog myDog;
    myDog.eat();  // kế thừa từ Animal
    myDog.bark(); // phương thức riêng của Dog
    return 0;
}
Trong ví dụ trên lớp Dog kế thừa từ Animal, nên có thể sử dụng phương thức eat().

3. Tính đa hình (Polymorphism)
Đa hình cho phép cùng một phương thức có thể có nhiều cách thực thi khác nhau, tùy thuộc vào đối tượng gọi nó.
Ví dụ:

#include <iostream>
using namespace std;
 
class Animal {
public:
    virtual void sound() {
        cout << "Some animal sound" << endl;
    }
};
 
class Cat : public Animal {
public:
    void sound() override {
        cout << "Meow" << endl;
    }
};
 
class Dog : public Animal {
public:
    void sound() override {
        cout << "Woof" << endl;
    }
};
 
int main() {
    Animal* a1 = new Cat();
    Animal* a2 = new Dog();
 
    a1->sound(); // Output: Meow
    a2->sound(); // Output: Woof
 
    delete a1;
    delete a2;
    return 0;
}
Dù a1 và a2 là con trỏ kiểu Animal, nhưng nhờ từ khóa virtual, phương thức sound() được gọi đúng theo kiểu thực tế của đối tượng được khởi tạo ra từ lớp con Cat và Dog.

4. Tính trừu tượng (Abstraction)
Trừu tượng là việc ẩn đi chi tiết cài đặt và chỉ hiển thị những gì cần thiết cho người dùng.
Ví dụ:

#include <iostream>
using namespace std;
 
class Shape {
public:
    virtual void draw() = 0; // phương thức thuần ảo
};
 
class Circle : public Shape {
public:
    void draw() override {
        cout << "Drawing Circle" << endl;
    }
};
 
class Square : public Shape {
public:
    void draw() override {
        cout << "Drawing Square" << endl;
    }
};
 
int main() {
    Shape* s1 = new Circle();
    Shape* s2 = new Square();
 
    s1->draw(); // Output: Drawing Circle
    s2->draw(); // Output: Drawing Square
 
    delete s1;
    delete s2;
    return 0;
}
Trong ví dụ này Shape là lớp trừu tượng với phương thức thuần ảo draw(). Các lớp con phải định nghĩa lại phương thức này.

Hy vọng những ví dụ này giúp các bạn đang học lập trình C++ hiểu rõ hơn về các đặc điểm quan trọng trong lập trình hướng đối tượng C++. Nếu bạn là người mới tìm hiểu lập trình nhưng chưa hiệu quả ? Tham khảo ngay lộ trình học c++ hiệu quả tại đây.

Bạn có thể bắt đầu ngay con đường chinh phục của bạn để trở thành lập trình viên chuyên nghiệp trong tương lai bằng việc đăng ký tham gia khoá học lập trình c++ cho người mới tại đây: http://bit.ly/2SLPYFF. Hoặc gọi ngay cho Stanford theo hotline: 0963.723.236 - 0866.586.366 để được gọi lại tư vấn trực tiếp nhé.

==========🎬 🎬 🎬==========
☎️STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 - 0866 586 366
Website: https://stanford.com.vn
Facebook: http://bit.ly/2FN0TYb
Youtube: http://bit.ly/2TkKT7I

Tags: học c++, lập trình hướng đối tượng c++