***********面向对象 *************
面向对象是按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
特性:抽象 封装 继承 多态
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,
可以设计出低耦合 的系统,使系统更加灵活、更加易于维护
缺点:性能比面向过程低
**********对象和类 ************
类(Class):是现实或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。
对象(Object) :是具有类类型的变量。类和对象是面向对象编程技术中的最基本的概念。
一.创建和使用类
1.创建Dog类
下面我们编写一个表示小狗的简单类:
class Dog:
def __init__(self,name,age):
self.name = name
self.age = age
def sit(self):
print(self.name + '正在蹲下')
def roll_over(self):
print(self.name + '正在打滚')
根据Dog类(它表示的不是特定的小狗,而是任何小狗,它们都有名字和年龄,还会蹲下和打滚)创建的每个实例都将存储名字和年龄,并且我们赋予了每条小狗蹲下(sit())和打滚(roll_over())的能力。
1).方法__init__()
方法__init__是一个特殊的方法,每当你根据Dog类创建新实例的时候,python都会自动运行它。包含三个形参(self,name,age),形参self必不可少,还必须位于其他形参的前面。当python调用__init__()这个方法创建Dog实例时,将自动传入实参self。每个与类相关联的方法调用都自动传递实参self,他是一个指向实例本身的应用,让实例能够访问类中的属性和方法。
2).以self为前缀的变量都可以供类中的所有方法使用, self.name=name获取存储在形参name中的值,并将其存储到变量name中,然后该变量被关联到当前创建的实例。像这样可以通过实例访问的变量成为属性。
2.根据类创建实例
下面来创建一个表示特性小狗的实例: