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

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3

🎯 今日目标

  • 理解类(class)和对象(object)的关系
  • 学会定义类的属性、方法和构造函数(init
  • 掌握对象的创建与使用
  • 初识封装、继承和多态的基本概念(预告)

📘 什么是类和对象?

概念说明
类(Class)一种抽象模板,用于定义某种类型的数据和功能
对象(Object)类的实例,是实际存在的数据个体

✅ 定义一个类:

class Student:def __init__(self, name, age):self.name = nameself.age = agedef say_hello(self):print(f"大家好,我是 {self.name},今年 {self.age} 岁。")

✅ 创建对象:

stu1 = Student("小明", 18)
stu1.say_hello()

输出:

大家好,我是 小明,今年 18 岁。

📌 类的构造方法(init

init() 是类的特殊方法,在对象创建时自动调用,用于初始化属性。

def __init__(self, 参数...):self.属性名 = 参数

🔁 对象的方法调用

对象调用方法格式:对象名.方法名()
方法中访问属性用 self.属性名。

class Dog:def __init__(self, name):self.name = namedef bark(self):print(f"{self.name}:汪汪!")dog1 = Dog("小白")
dog1.bark()

✨ 补充:实例属性 vs 类属性(了解)

class Demo:class_var = "我是类属性"  # 所有对象共享def __init__(self):self.instance_var = "我是实例属性"  # 每个对象独立

🧪 今日练习任务

✅ 练习1:定义一个 Book 类,包含书名、作者,和方法 info() 输出书籍信息

class Book:def __init__(self, title, author):self.title = titleself.author = authordef info(self):print(f"《{self.title}》作者:{self.author}")book1 = Book("三体", "刘慈欣")
book1.info()

✅ 练习2:实现一个 Rectangle 类,包含长、宽,和方法计算面积与周长

class Rectangle:def __init__(self, width, height):self.width = widthself.height = heightdef area(self):return self.width * self.heightdef perimeter(self):return 2 * (self.width + self.height)r = Rectangle(3, 4)
print("面积:", r.area())
print("周长:", r.perimeter())

✅ 练习3:定义一个 Person 类,增加一个方法 is_adult() 判断是否成年(年龄≥18)

class Person:def __init__(self, name, age):self.name = nameself.age = agedef is_adult(self):return self.age >= 18p = Person("小红", 17)
print(p.is_adult())  # 输出 False

📌 今日总结

内容说明
类和对象类是模板,对象是实例
构造方法 init初始化属性
self表示当前对象的引用
面向对象思维抽象对象、封装属性、复用结构
http://www.xdnf.cn/news/12545.html

相关文章:

  • CSS3 的特性
  • 前端开发者常用网站
  • DeepSeek09-open-webui使用
  • 银行卡二三四要素实名接口如何用PHP实现调用?
  • npm安装electron下载太慢,导致报错
  • 华为云Flexus+DeepSeek征文 | 从零到一:用Flexus云服务打造低延迟联网搜索Agent
  • 【杂谈】-DeepSeek-V3:AI开发的成本效益突破与行业启示
  • ARM SMMUv3简介(一)
  • 常用存储器介绍
  • 10.Linux进程信号
  • 第四十六天打卡
  • 简单了解一下Hugging Face(抱抱脸)
  • 信号(瞬时)频率求解与仿真实践(1)
  • Unity版本使用情况统计(更新至2025年5月)
  • 计算机网络基础(一)
  • C语言速成15之告别变量碎片化:C 语言结构体如何让数据管理从混乱走向有序
  • LTE重建到新小区流程介绍
  • 宁乡地-气-碳-水相互作用综合观测数据集
  • 008-C++String
  • 深入浅出:计算机网络体系结构——信息世界的“交通规则”
  • 0.5S 级精度背后:DJSF1352-RN-6 如何让储能电站的每 1kWh 都「有迹可循」?
  • RK3588 火焰烟雾检测
  • 普中STM32F103ZET6开发攻略(六)
  • 第三十章 MDK的编译过程及文件类型
  • C++递归语句完全指南:从原理到实践
  • python模块——tqdm
  • 代付业务怎么理解?
  • [假面骑士] 龙骑浅谈
  • 【信息系统项目管理师-论文真题】2025上半年(第一批)论文详解(包括解题思路和写作要点)
  • Java并发容器和原子类