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

第三周 Day 3

🎯 今日目标

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

📘 什么是类和对象?

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

✅ 定义一个类:

python 复制代码
class Student:
    def __init__(self, name, age):
        self.name = name
        self.age = age

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

✅ 创建对象:

python 复制代码
stu1 = Student("小明", 18)
stu1.say_hello()

输出:

python 复制代码
大家好,我是 小明,今年 18 岁。

📌 类的构造方法(init

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

python 复制代码
def __init__(self, 参数...):
    self.属性名 = 参数

🔁 对象的方法调用

对象调用方法格式:对象名.方法名()

方法中访问属性用 self.属性名。

python 复制代码
class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name}:汪汪!")

dog1 = Dog("小白")
dog1.bark()

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

python 复制代码
class Demo:
    class_var = "我是类属性"  # 所有对象共享

    def __init__(self):
        self.instance_var = "我是实例属性"  # 每个对象独立

🧪 今日练习任务

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

python 复制代码
class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def info(self):
        print(f"《{self.title}》作者:{self.author}")

book1 = Book("三体", "刘慈欣")
book1.info()

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

python 复制代码
class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2 * (self.width + self.height)

r = Rectangle(3, 4)
print("面积:", r.area())
print("周长:", r.perimeter())

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

python 复制代码
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def is_adult(self):
        return self.age >= 18

p = Person("小红", 17)
print(p.is_adult())  # 输出 False

📌 今日总结

内容 说明
类和对象 类是模板,对象是实例
构造方法 init 初始化属性
self 表示当前对象的引用
面向对象思维 抽象对象、封装属性、复用结构
相关推荐
woshihuanglaoshi9 分钟前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
码农学院12 分钟前
GEO与SEO协同:从传统搜索到生成式搜索的平滑迁移路径
服务器·前端·python
程序员羽痕12 分钟前
基于 Django + PyTorch 的中文字体识别系统
pytorch·python·django
灯澜忆梦9 小时前
GO_并发编程---定时器
开发语言·后端·golang
-银雾鸢尾-9 小时前
C#中的StringBuilder相关方法
开发语言·c#
-银雾鸢尾-10 小时前
C#中结构体与类的区别;抽象类与接口的区别
开发语言·c#
世人万千丶10 小时前
参数管理_Flutter在鸿蒙平台路由参数最佳实践
学习·flutter·华为·harmonyos·鸿蒙
大模型码小白10 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
麻雀飞吧11 小时前
最新量化学习路径,交易认知和技术实现要并行
人工智能·python
段一凡-华北理工大学12 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化