当前位置: 首页 > news >正文

面向对象案例

题目一:学生成绩管理


创建一个 Student 类,包含以下要求:
属性:name(姓名)、age(年龄)、grades(成绩列表,初始为空)。
方法:add_grade(score),用于向成绩列表中添加新分数。
方法:get_average(),用于计算并返回平均分。
实例化一个学生对象,添加几个成绩,并打印出该学生的平均分。

class Student():def __init__(self,name,age):self.name = name  # 对象可以访问的属性self.age = age # 创建了一个属性self.grades = [] # 创建了一个空列表,对象可以使用的# 添加分数def add_grade(self,score):self.grades.append(score)print(f"分数添加成功:{score}")# 打印分数def get_grade(self):return self.grades# 算出平均值def get_average(self):if len(self.grades) == 0:print("成绩为空,请添加成绩")return 0return sum(self.grades)/len(self.grades)# 创建了一个tom对象
tom = Student("tom",18)tom.add_grade(90)
tom.add_grade(90)
tom.add_grade(90)print(tom.get_grade())print(tom.get_average())# 创建了一个tim对象,每个对象都是独立的,因此tim对象打印的话,是一个空列表
tim = Student("tim",18)
print(tim.get_grade())

题目2: 封装与属性校验

创建一个 BankAccount(银行账户)类:
属性:__balance(余额,必须为私有属性,外部不能直接修改)。
方法:deposit(amount)(存钱),要求金额必须大于0,否则提示错误。
方法:withdraw(amount)(取钱),要求金额必须大于0且不超过当前余额,否则提示错误。
方法:get_balance(),用于查询当前余额。
class BankAcoount():def __init__(self,balance):# 定义一个余额self.__balance = balance# 存钱def deposit(self,amount):if amount > 0:self.__balance += amountprint("存钱成功")else:print(f"存钱的金额{amount}必须大于0")# 取钱def withdraw(self,amount):if amount > 0 and amount < self.__balance:self.__balance -= amountprint(f"取钱成功,余额为:{self.__balance}")else:print(f"取钱需要大于0或者取钱大于余额")print("取钱失败")# 查询余额def get_balance(self):print(f"查询的余额为:{self.__balance}")tom = BankAcoount(1000)tom.withdraw(500)
tom.get_balance()
tom.deposit(1000)
tom.get_balance()

题目3:继承与方法重写

创建一个 Animal(动物)基类和一个 Dog(狗)子类:
Animal 类包含一个 name 属性,以及一个 speak() 方法(默认输出“动物发出声音”)。
Dog 类继承自 Animal,并重写 speak() 方法,使其输出“汪汪叫”。
实例化 Dog 对象并调用 speak() 方法。
class Animal():def __init__(self,name):self.name = name  # 创建一个实例属性,对象就能使用了def speak(self):print("动物发出声音")class Dog(Animal):def speak(self):print("汪汪叫")d1 = Dog("karry")
d1.speak()

题目4:多态实战,图形面积计算

定义一个抽象基类 Employee(员工),包含属性 name(姓名),
并强制要求子类必须实现一个抽象方法 calculate_salary()(计算工资)。创建三个子类,分别代表不同类型的员工,并重写 calculate_salary() 方法:
SalariedEmployee(全职员工):属性包含 monthly_salary(月薪)。工资 = 固定月薪。
HourlyEmployee(小时工):属性包含 hourly_rate(时薪)和 hours_worked(工作时长)。工资 = 时薪 × 时长。
SalesEmployee(销售员):属性包含 base_salary(底薪)和 sales_amount(销售额)。工资 = 底薪 + 销售额 × 5%(提成)。编写一个统一的发薪函数 pay_salary(employee),接收任意员工对象,并打印出“XXX 本月工资为:XXX 元”。
实例化不同类型的员工,放入一个列表中,遍历列表调用发薪函数。

http://www.jsqmd.com/news/847059/

相关文章:

  • 信步SV-OPS-H270嵌入式主板:高性能、高集成度的工业与边缘计算平台解析
  • 告别拍脑袋决策:用ArcMap加权叠加工具,为你的项目选址做个科学的‘体检报告’
  • 保姆级教程:用STM32+ESP8266+微信小程序,从零搭建Onenet物联网监控系统(含源码)
  • LeetCode热题100-二叉树展开为链表
  • 消息平台接入实战:Hermes Agent 实现微信/钉钉日常任务自动化的 4 步配置
  • Perplexity招聘数据深度报告(基于爬取12,847条JD的NLP分析:哪些技能正被悄悄淘汰?哪些证书突然溢价200%?)
  • 手把手教你改造10块钱的USBASP烧录器,让它兼容Arduino IDE和AVRDUDESS
  • PaddleOCR迁移学习避坑指南:为什么我的数字识别模型很快就过拟合了?
  • QML ListView花式动画全攻略:从优雅入场到丝滑删除的Transition实战
  • Harness 中的工具调用冲突检测与解决
  • 别再傻傻重装系统了!Vmware装Ubuntu报‘unable to find a live file system’?试试这个隐藏的Hyper-V开关
  • B站视频下载神器:如何优雅地将Bilibili内容保存到本地
  • 保姆级教程:用Java+SpringBoot给服务器告警邮件装个‘飞书闹钟’
  • STM32独立看门狗IWDG喂狗超时?手把手教你用CubeMX配置并避开3个常见坑
  • 2025届学术党必备的五大AI论文平台解析与推荐
  • Grok 4.3与未来展望——智能体时代的Grok与AI安全新范式
  • 格式改到心态崩?Paperxie 智能排版,一键把论文 “捏” 成学校模板
  • 手把手教你用51单片机IIC驱动0.91寸OLED屏(附完整代码与Proteus仿真)
  • 编程统计员工午休时长,下午工作效率数据,划定合理休息时间,科学提升全天职场整体工作产能。
  • 嵌入式主板SV1a-19016-KP选型与工业应用实战解析
  • GX Works3实战:基于TCP+SLMP协议与三菱FX5U的工业互联配置详解
  • 独立开发者如何借助Taotoken低成本尝试不同大模型能力
  • 3个步骤掌握WindowResizer:轻松突破Windows窗口尺寸限制的终极方案
  • 还在对着学校格式手册掉头发?Paperxie 帮你一键搞定毕业论文排版
  • Claude Code 用户如何通过 Taotoken 配置稳定 API 连接避免封号困扰
  • 别再傻傻用命令行测试了!SoKIT这个TCP/UDP调试工具,5分钟上手真香
  • C语言位运算从入门到实战:嵌入式开发与性能优化的底层利器
  • FanControl完全指南:从噪音困扰到静音控制,Windows风扇管理的终极解决方案
  • 2026届必备的六大AI辅助论文方案实际效果
  • SteamAutoCrack完整指南:一键移除游戏DRM保护