一 面向对象编程
面向对象编程(英语:Object-oriented programming,缩写:OOP)是一种编程理念,这种编程理念更符合我们人的逻辑思维。使用面向对象编程可以提高我们的开发速度和代码的重用率。面向对象的开发非常适合大型程序开发,开发速度和后期维护都比过程化开发要好很多。面向对象编程(英语:Object-oriented programming,缩写:OOP)是一种编程理念,这种编程理念更符合我们人的逻辑思维。使用面向对象编程可以提高我们的开发速度和代码的重用率。面向对象的开发非常适合大型程序开发,开发速度和后期维护都比过程化开发要好很多。面向对象编程(英语:Object-oriented programming,缩写:OOP)是一种编程理念,这种编程理念更符合我们人的逻辑思维。使用面向对象编程可以提高我们的开发速度和代码的重用率。面向对象的开发非常适合大型程序开发,开发速度和后期维护都比过程化开发要好很多。
二 面向对象和全面过程理解
向过程和面向对象都是用来解决问题的,只是解决问题的思路不同。
面向过程可以理解亲力亲为,面向对象可以理解为坐享其成。
例如炒菜
面向过程: 1)菜市场买菜,2)讨价还价,3)洗菜,4)切菜,5)炒菜,6)吃
面向对象: 1 点外卖 2 送达 3 吃
面向过程:
在生活中就是亲力亲为,在程序中面向过程编程就是函数之间的一个相互调用。以函数为基本结构使用。
面向对象在生活中是坐享其成,别人做好的东西为我所用。在程序中面向对象编程是以对象为基本结构使用。
三 对象和类的概念
1.类
生活中的类和对象概念
类:是对一群具有相同特征或者行为的事物的统称,是抽象的,不能直接使用。
例如人类狗类猫类...
描述一个类通过行为和特征
行为:会跑,会叫
特征:黄毛,大眼睛
类可以理解为一种事物的模板
2 对象
是由类创造出来的具体实体,可以直接使用的。例如 大黄,小白。
3 类和对象的关系
(1)现有类后又对象
(2)类只有一个,对象可以有好多个
4类的设计
在程序中设计一个类,通常需要满足一下3个要素:
类名:大驼峰命名法。
属性:描述这类事物的特征。
方法:描述这类事物的具体行为
四 定义一个简单的类
创建类
class Dog:
def eat(self):
print('吃骨头')
def sleep(self):
print('要睡觉')
创建对象
格式 对象名称 = 类名()
dog = Dog()
dog.eat()
dog.sleep()
print(id(dog))
dog1 = Dog()
dog.sleep()
dog1.eat()
dog.sleep()
print(id(dog1))
吃骨头
要睡觉
18216832
要睡觉
吃骨头
要睡觉
18218680
self 变量
self 变量 哪个对象调用方法或者属性 self就是那个变量 self的变量名称是可以修改的,但是不建议大家修改
class Person:
def study(self):
print('你们见过凌晨3点中的北京吗')
print('study中的地址',id(self))
def eat(self):
print('学习每天三顿自助大餐')
print('eat中的地址',id(self))
mf = Person()
mf.eat()
mf.study()
print('mf的地址',id(mf))
"""
学习每天三顿自助大餐
eat中的地址 18673960
你们见过凌晨3点中的北京吗
study中的地址 18673960
mf的地址 18673960
"""
__init__方法
在对象创建的时候自动会调用,可以利用这个方法做一个初始化操作
如 初始化变量
class Cat:
def __init__(self,name): #创建一个对象 __int__执行一次,并不是只执行一次
print('init在创建对象的时候执行')
self.name = name #给对象添加一个name属性
def eat(self):
print(self.name,'猫吃老鼠')
print(self.name)
blue_cat = Cat('蓝猫')
blue_cat.eat()
black_cat = Cat('黑猫')
black_cat.eat()
"""
init在创建对象的时候执行
蓝猫 猫吃老鼠
蓝猫
init在创建对象的时候执行
黑猫 猫吃老鼠
黑猫
"""
__str__方法
class Cat:
def __init__(self,name,age):
print('init在创建对象的时候执行')
self.name = name #给对象添加一个name属性
self.age = age
def eat(self):
print('猫吃老鼠')
print(self.name)
def __str__(self):
msg = 'name属性值{}age属性值{}'.fomart(self.name,self.age)
return msg
cat = Cat('蓝猫',6)
cat.eat()
print(cat)
"""
init在创建对象的时候执行
猫吃老鼠
蓝猫
name属性的值是蓝猫 age的属性值是6
"""