Files
chunyu_project/media/learn/courses/12/chapters/50.md
T
2026-08-05 23:59:15 +08:00

99 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第5章 面向对象编程(OOP)
## 5.1 面向对象概述
- **类(Class)**:抽象模板,定义属性和方法
- **对象(Object)**:类的实例
- **封装**:隐藏内部实现细节
- **继承**:子类继承父类的属性和方法
- **多态**:同一接口,不同实现
---
## 5.2 类和对象
```python
class Dog:
species = "犬科"
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
return f"{self.name} 汪汪叫!"
def __str__(self):
return f"{self.name}({self.age}岁)"
my_dog = Dog("旺财", 3)
print(my_dog.bark())
print(my_dog)
```
---
## 5.3 封装
```python
class BankAccount:
def __init__(self, owner, balance=0):
self.owner = owner
self.__balance = balance
def deposit(self, amount):
if amount > 0:
self.__balance += amount
def get_balance(self):
return self.__balance
```
---
## 5.4 继承
```python
class Animal:
def __init__(self, name):
self.name = name
class Cat(Animal):
def speak(self):
return f"{self.name} 喵喵叫"
class Dog(Animal):
def speak(self):
return f"{self.name} 汪汪叫"
```
---
## 5.5 魔术方法
```python
class Book:
def __init__(self, title, author, price):
self.title = title
self.author = author
self.price = price
def __str__(self):
return f"《{self.title}》 - {self.author}"
def __repr__(self):
return f"Book('{self.title}', '{self.author}', {self.price})"
def __eq__(self, other):
if isinstance(other, Book):
return self.title == other.title
return False
```
---
## 本章练习
1. 设计一个 `Student` 类,包含姓名、年龄、成绩属性
2. 使用继承创建 `Animal` 类及其子类
3. 实现一个单例模式的配置管理器类