面向对象编程(OOP)是一种编程范式,它通过使用对象和类来组织代码。掌握面向对象编程的核心技巧对于成为一名优秀的程序员至关重要。以下是一些实战习题,帮助你巩固面向对象编程的基础知识。
实战习题1:创建一个类来表示书籍
题目描述
创建一个名为 Book 的类,该类包含以下属性和方法:
- 属性:
title(书名)、author(作者)、pages(页数) - 方法:
get_summary(获取书籍简介)
代码示例
class Book:
def __init__(self, title, author, pages):
self.title = title
self.author = author
self.pages = pages
def get_summary(self):
return f"{self.title} by {self.author}, {self.pages} pages"
实战习题2:使用继承创建一个电子书类
题目描述
创建一个名为 EBook 的类,该类继承自 Book 类,并添加以下属性和方法:
- 属性:
format(电子书格式,如:PDF、EPUB) - 方法:
get_format(获取电子书格式)
代码示例
class EBook(Book):
def __init__(self, title, author, pages, format):
super().__init__(title, author, pages)
self.format = format
def get_format(self):
return self.format
实战习题3:实现多态
题目描述
创建一个名为 Shape 的基类,以及两个继承自 Shape 的子类:Circle 和 Rectangle。每个子类都应实现一个名为 area 的方法来计算形状的面积。
代码示例
import math
class Shape:
pass
class Circle(Shape):
def __init__(self, radius):
self.radius = radius
def area(self):
return math.pi * self.radius ** 2
class Rectangle(Shape):
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
实战习题4:使用封装
题目描述
创建一个名为 BankAccount 的类,该类包含以下属性和方法:
- 属性:
balance(余额)、account_number(账户号码) - 方法:
deposit(存款)、withdraw(取款)
确保 balance 和 account_number 属性是私有的,并且不能直接从类外部访问。
代码示例
class BankAccount:
def __init__(self, account_number, balance=0):
self.__balance = balance
self.__account_number = account_number
def deposit(self, amount):
self.__balance += amount
def withdraw(self, amount):
if self.__balance >= amount:
self.__balance -= amount
else:
print("Insufficient funds")
def get_balance(self):
return self.__balance
def get_account_number(self):
return self.__account_number
实战习题5:使用组合
题目描述
创建一个名为 Computer 的类,该类包含以下属性和方法:
- 属性:
cpu(CPU)、ram(内存)、disk(硬盘) - 方法:
start(启动计算机)
每个属性都是一个独立的类,如 CPU、RAM 和 Disk。
代码示例
class CPU:
def __init__(self, model):
self.model = model
class RAM:
def __init__(self, size):
self.size = size
class Disk:
def __init__(self, capacity):
self.capacity = capacity
class Computer:
def __init__(self, cpu, ram, disk):
self.cpu = cpu
self.ram = ram
self.disk = disk
def start(self):
print(f"Starting the computer with {self.cpu.model} CPU, {self.ram.size}GB RAM, and {self.disk.capacity}GB disk.")
实战习题6:使用设计模式
题目描述
实现一个简单的工厂模式,用于创建不同类型的汽车对象。
代码示例
class Car:
def __init__(self, model):
self.model = model
def drive(self):
print(f"Driving a {self.model} car.")
class CarFactory:
@staticmethod
def create_car(model):
if model == "Sedan":
return Car("Sedan")
elif model == "SUV":
return Car("SUV")
else:
raise ValueError("Invalid car model")
# 使用工厂模式创建汽车对象
sedan = CarFactory.create_car("Sedan")
sedan.drive()
suv = CarFactory.create_car("SUV")
suv.drive()
通过完成这些实战习题,你可以更好地理解面向对象编程的核心概念,并能够将其应用到实际项目中。祝你学习愉快!
