sync from local backup
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
# 第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. 实现一个单例模式的配置管理器类
|
||||
Reference in New Issue
Block a user