DAY-06课堂笔记
面向对象编程介绍
面向对象和面向过程的基本概念
⾯向对象(oop) 是⼀种编程⽅法, 编程思想(即指导如何写代码), 适⽤于 中⼤型项⽬
⾯向过程也是⼀种编程思想, 适⽤于⼩型项⽬
⾯向过程 和 ⾯向对象 都可以实现某个编程的⽬的.
⾯向过程 考虑的是 实现的细节
⾯向对象 考虑的是 结果(谁能做这件事)
面向对象的核心内容 类 和 对象
类和对象的概念
- 类:是对具有相同特征或者行为的事物的一个统称, 是抽象的,不能直接使用
- 指代多个事物---很多事物的统称
- 代码中 类 是由关键字
class
定义的
- 对象:是由类创建出来的一个具体存在的事物, 可以 直接使用
- 指代一个事物
- 代码中 使用类去创建(实例化)
苹果 ----> 类
红苹果 ----> 类
⼩明⼿⾥的那个红苹果 ----> 对象
狗 ----> 类
⼤⻩狗 -----> 类
李四家的那条 ⼤⻩狗 -----> 对象
类 :就是模具。拥有一定的整体特征。
对象:符合模具的要求,有具体的实现。
当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽离出来后,就可以定义出一个叫做“类”的东西。
类的构成
想要设计一个类, 通常需要满足以下三个要素:
- 类名: 同类事物的名字, 命名要满足大驼峰命名法
- 属性: 同类事物具备的特征
- 方法: 同类事物具备的行为
⾯向对象代码的步骤
1, 设计类 (找类的三要素)
2, 定义类
3, 创建对象(实例化对象)
4, 由对象调⽤类中的⽅法
类的设计
类的设计 就是找三要素. 属性和⽅法 可能会有很多,我们只需要
找到关注的即可
类名的提取:使⽤名词提炼法 分析整个业务流程, 得出的名词,
通 常就是类名
⚠:对于需求中没有提到的属性和方法, 在设计类的时候不要添加进来!
类的设计-案例演练1
需求:
• 小明 今年 18 岁,身高 1.75,每天早上 跑 完步,会去 吃 东西
• 小美 今年 17 岁,身高 1.65,小美不跑步,小美喜欢 吃 东西
类名 :Person
属性 :name , age ,height
方法 :run , eat
类的设计-练习1
需求:
• 一只 黄颜色 的 狗狗 叫 大黄
• 看见生人 汪汪叫
• 看见家人 摇尾巴
类名 :Dog
属性 :color , name
方法 :汪汪叫(bark) , 摇尾巴(shake)
类的设计-案例演练2
需求:
• 进入某 Web 项目登录页面,输入用户名、密码、验证码之后,点击登录按钮可以登录系统
类名 :LoginPage
属性 :username , paasword ,code ,登录按钮
方法 :登录方法
类的设计-练习2
需求:
进入某APP项目的下订单页面,输入用户收货地址后,点击提交订单按钮,可以实现下单操作
类名 :Page
属性 :用户收货地址 , 提交订单按钮
方法 :下单方法
面向对象基本语法
定义类
在Python 中定义类使⽤关键字 class
# 类名: 遵循大驼峰命名法
class 类名:
# 方法: 定义方式与函数基本相同, 区别是方法的第一个参数必须为 self
def 方法1(self, 参数列表):
pass
def 方法2(self, 参数列表):
pass
创建对象
在代码中, 对象是由类对象.
类名() # 就是创建对象
# ⼀般使⽤变量将创建的对象保存起来
变量 = 类名() # ⼀般将这个变量 称为是对象, 本质-->变量中保存的是对象的引⽤地址
案例一
需求:小猫 爱 吃鱼,小猫 要 喝水
类名 :Cat
属性 :/
方法 :吃鱼eat ; 喝水drink
class Cat:
def eat(self):
"""吃⻥的⽅法"""
print("吃鱼")
def drink(self):
"""喝⽔的⽅法"""
print("喝水")
tom = Cat()
tom.drink()
tom.eat()
self 参数
1, 参函数的语法上来看, self 是形参, 名字可以任意的变量
名, 只是我们习惯性叫 self
2, 特殊点: self 是⼀个普通的参数, 按照函数的语法,在调⽤的时候,必须传递实参值, 原因, 是 Python 解释器⾃动的将 调⽤这个⽅法的对象作为参数传递给 self 所以 self 就是调⽤这个⽅法对象
class Cat:
def eat(self): # self 是调⽤这个⽅法的对象
"""吃⻥的⽅法"""
print(f'self:{id(self)}')
print('⼩猫爱吃⻥...')
# 创建对象
tom = Cat()
# 通过对象 调⽤类中的⽅法
print(f"tom :{id(tom)}")
tom.eat() # tom 调⽤ ,self 就是 Tom
blue_cat = Cat()
print(f'blue:{id(blue_cat)}')
blue_cat.eat() # blue_cat 调⽤, self 就是 blue_cat
属性
属性表示事物的特征.
可以给对象添加属性 或者获取对象的属性值.
给对象添加属性:
对象.属性名 = 属性值 # 添加或者修改
获取对象的属性值:
对象.属性名
在⽅法中操作属性(self 是对象):
self.属性名 = 属性值
self.属性名
class Cat:
def eat(self): # self 是调⽤这个⽅法的对象
"""吃⻥的⽅法"""
print(f'self:{id(self)}')
print(f'⼩猫{self.name}爱吃⻥...')
# 创建对象
tom = Cat()
tom.name = '汤姆' #------->在类的外面定义属性
print(tom.name)
tom.eat()
blue_cat = Cat()
print(f'blue:{id(blue_cat)}')
blue_cat.name = '蓝猫'
blue_cat.eat()
练习:
Cat 添加属性 姓名, 年龄
eat ⽅法中打印输出 ⼩猫 xx, xx 岁 爱吃⻥
class Cat:
def eat(self): # self 是调⽤这个⽅法的对象
"""吃⻥的⽅法"""
print(f'self:{id(self)}')
print(f'⼩猫{self.name},{self.age}岁 爱吃⻥...')
tom=Cat()
tom.name="xx"
tom.age="xx"
tom.eat()
在类的内部定义属性
标签:__,name,04,self,面向对象,print,def,属性 From: https://www.cnblogs.com/xcq-bj/p/18308332