第三周 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 | 表示当前对象的引用 |
面向对象思维 | 抽象对象、封装属性、复用结构 |