天天看点

如何理解Python 面向对象编程思想

Python 面向对象编程思想

      • 1. 宽泛的面向对象的概念 举例说明
          • 面向过程:做一件事情,从头到尾,每一个细节都要关注,重点在于过程
          • 面向对象:做一件事情,用对象去做,不关心细节和过程,万物皆对象
      • 2. python中面向对象
          • 有类:描述一类事物,一个抽象的概念,比如:人、动物、水果
          • 有对象:是类的具象化比如:张三、李四、猫、狗
      • 3. python中面向对象的三大特征:
          • 3.1 封装:面向对象编程的第一步----->将 属性和方法 封装到一个抽象的 类 中
          • 3.2 继承:子类可以拥有父类的属性和方法(减少代码的书写,提高代码的阅读性)
          • 3.3 多态:一个对象的多种形态(一父多子)
      • 4. 面向对象编程的设计
          • 继承体系设计 有什么类 什么属性 封装到什么方法中去

从四个方面来聊面向对象

1. 宽泛的面向对象的概念 举例说明

面向过程:做一件事情,从头到尾,每一个细节都要关注,重点在于过程
从西安到北京:西安-郑州-武汉-邯郸-邢台-北京
           
面向对象:做一件事情,用对象去做,不关心细节和过程,万物皆对象
从西安到北京: 坐动车到北京
           

2. python中面向对象

有类:描述一类事物,一个抽象的概念,比如:人、动物、水果
有对象:是类的具象化比如:张三、李四、猫、狗
特征(属性)
	功能行为(方法) 
           

元类-类-对象

3. python中面向对象的三大特征:

3.1 封装:面向对象编程的第一步----->将 属性和方法 封装到一个抽象的 类 中
外界使用 类 创建 对象,然后让 对象 调用方法
对象方法的细节 都被 封装 在 类的内部
           
3.2 继承:子类可以拥有父类的属性和方法(减少代码的书写,提高代码的阅读性)

单继承

代码的传递性:孙子类中可以使用爷爷类型的方法

多继承

一个子类可以继承多个父类

特点:子类拥有所有父类的属性和方法

方法重写:
	概念:在子类中书写和父类同名的方法
	特点:在类中调用方法,如果在子类中找到,直接执行子类中的方法
            如果子类中没有找到这个方法,去父类中找,找到了就调用父类中的方法,
            如果父类中没有找到,则报错
私有方法和属性:
	语法格式:
		def __函数名(self):

		def __init__(self):
			self.__money = "自己猜"
	特点:
		不允许被外界访问,只能自己使用
		如果外界必须访问,那么可以提供一个公共的方法,访问私有属性 
           
3.3 多态:一个对象的多种形态(一父多子)
作用:增强代码的灵活性、提高代码的扩展性
条件:继承、方法的重写
           

4. 面向对象编程的设计

继承体系设计 有什么类 什么属性 封装到什么方法中去
比如:门 锁  人 ,把开门关门的方法 封装在谁的类之中?
    封装在门的类之中,(谁拥有数据谁就拥有操作数据的权利)而人相当于一个main方法 
    调用时:拿到门对象,调用门的开关门方法