面向对象编程(英语:Object-oriented programming,缩写:OOP)是一种编程理念,这种编程理念更符合我们人的逻辑思维。使用面向对象编程可以提高我们的开发速度和代码的重用率。面向对象的开发非常适合大型程序开发,开发速度和后期维护都比过程化开发要好很多。
面向过程和面向对象都是用来解决问题的,只是解决问题的思路不同。
面向过程可以理解亲力亲为,面向对象可以理解为坐享其成。
例如炒菜
面向过程:
1)菜市场买菜,2)讨价还价,3)洗菜,4)切菜,5)炒菜,6)吃
面向对象:
点开APP,2).下订单 3).吃
面向过程:
在生活中就是亲力亲为,在程序中面向过程编程就是函数之间的一个相互调用。以函数为基本结构使用。
面向对象:
在生活中是坐享其成,别人做好的东西为我所用。在程序中面向对象编程是以对象为基本结构使用
1.类
生活中的类和对象概念
类:是对一群具有相同特征或者行为的事物的统称,是抽象的,不能直接使用。
例如人类狗类猫类...
描述一个类通过行为和特征
行为:会跑,会叫
特征:黄毛,大眼睛
类可以理解为一种事物的模板
2.对象
对象:
是由类创造出来的具体实体,可以直接使用的。例如 大黄,小白。
3.类与对象的关系
先有类后有对象
类只有一个对象可以有多个
4.类的设计
在程序中设计一个类,通常需要满足一下3个要素:
类名:大驼峰命名法。
属性:描述这类事物的特征。
方法:描述这类事物的具体行为。
类和对象如何在内存中保存
类以及类中的方法在内存中只有一份,而根据类创建的每一个对象都在内存中需要存一份
class是关键字,表示类
创建对象,类名称后加括号即可
self : 哪个对象调用方法或者属性,self就是那个变量。
练习查看 self和 对象的内存id值是否相同。
构造方法,通过类创建对象时,自动触发执行。
class Foo:def __init__(self, name):self.name = nameself.age = 18print(self.name, self.age) # 赵赫 18person = Foo('赵赫')
练习:创建个Dog类,创建对象的时候传递参数
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef introduce(self):print('{},今年{}岁'.format(self.name, self.age))dog1 = Dog('大黄', 5) # 传递参数
dog1.introduce() # 大黄,今年5岁
打印对象的名称时默认调用的是__str__()方法,此方法默认返回的是对象的内存地址。
我们可以重写 __str__() 方法打印对象保存的信息。
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef __str__(self):msg = '{},今年{}岁'.format(self.name, self.age)return msgdog1 = Dog('大黄', 5) # 传递参数
print(dog1) # 大黄,今年5岁
综合练习:
计算圆的面积和周长:
from math import pi # 调用 piclass Circle():def __init__(self, radius):self.radius = radius # 定义半径def zhouchang(self):return 2 * pi * self.radiusdef area(self):return pi * self.radius * self.radiuscircle = Circle(3) # 传递半径r=3ret = circle.zhouchang() # 调用周长
print(ret) # 18.84955592153876ret1 = circle.area() # 调用面积
print(ret1) # 28.274333882308138
本文发布于:2024-01-30 20:19:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170661715422576.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |