hwaityd的小窝

Loading...

面向对象编程(Object-Oriented Programming, OOP)

面向对象编程是一种编程范式,它使用对象和基于类的结构来设计软件。OOP的主要特点是封装、继承和多态。

1. 封装(Encapsulation)

  • 概念:封装是将数据(属性)和操作这些数据的方法(行为)捆绑在一起的机制。它隐藏了对象的内部状态和复杂性,只暴露出一个清晰、简洁的接口。
  • 语法:在类中使用访问修饰符(如privatepublic)来控制成员变量和成员函数的访问权限。
  • 特点:提高了代码的安全性和可维护性,因为对象的内部实现可以自由更改,而不会影响到使用该对象的代码。

示例代码

class BankAccount {
private:
    double balance; // 私有成员变量,外部无法直接访问

public:
    BankAccount(double initialBalance) : balance(initialBalance) {}

    void deposit(double amount) {
        if (amount > 0) {
            balance += amount;
        }
    }

    double getBalance() const {
        return balance;
    }
};

int main() {
    BankAccount account(1000);
    account.deposit(500);
    std::cout << "Balance: " << account.getBalance() << std::endl;
    return 0;
}

2. 继承(Inheritance)

  • 概念:继承是一种创建新类(派生类)的机制,新类继承了现有类(基类)的属性和方法,并能添加或修改功能。
  • 语法:使用class Derived : public Base来声明派生类继承基类。
  • 特点:支持代码重用,派生类可以扩展或修改基类的行为。

示例代码

class Animal {
public:
    void eat() {
        std::cout << "Eating" << std::endl;
    }
};

class Dog : public Animal {
public:
    void bark() {
        std::cout << "Barking" << std::endl;
    }
};

int main() {
    Dog myDog;
    myDog.eat(); // 继承自Animal类
    myDog.bark();
    return 0;
}

3. 多态(Polymorphism)

  • 概念:多态是指允许不同类的对象对同一消息做出响应的能力。这意味着同一个接口可以被不同的对象以不同的方式实现。
  • 语法:通过虚函数(使用virtual关键字)实现多态。派生类可以重写(override)基类中的虚函数。
  • 特点:多态使得代码更加灵活和通用,能够处理不同类型的对象,而不需要知道对象的具体类型。

示例代码

class Shape {
public:
    virtual void draw() const = 0; // 纯虚函数
};

class Circle : public Shape {
public:
    void draw() const override {
        std::cout << "Drawing a circle" << std::endl;
    }
};

class Square : public Shape {
public:
    void draw() const override {
        std::cout << "Drawing a square" << std::endl;
    }
};

int main() {
    Shape* shape1 = new Circle();
    Shape* shape2 = new Square();

    shape1->draw(); // 调用Circle的draw()
    shape2->draw(); // 调用Square的draw()

    delete shape1;
    delete shape2;
    return 0;
}

封装、继承和多态是面向对象编程的基石,它们共同提供了一种强大的方式来构建复杂和可扩展的软件系统。

posted on 2024-10-20 00:26  hwaityd  阅读(1)  评论(0编辑  收藏  举报