面向对象的特性
-
封装
对数据进行保护 隐藏 语法: 在创建属性和方法的时候在名字前面加上一个‘__’,那么别人就不能轻松的访问到这个属性或方法 例: class Person: def __init__(self, name, age): # 创建隐藏属性__name self.__name = name # 创建吟唱属性__age self.__age = age return None # 创建访问name属性的方法 def getName(self): return self.__name # 创建更改name属性的方法 def setName(self, name): self.__name = name return None # 创建获取age的方法 def getAge(self): return self.__age # 创建修改age的方法 def setAge(self, age): if 0<age<100: self.__age = age return None print('您修改的年龄不符合要求') # 创建删除属性name的方法 def delName(self): del self.__name return None # 创建删除属性age的方法 def delAge(self): del self.__age return None
-
继承(Python中的面向对象是多继承的)
1. 父类————————————子类 子类可以从父类中继承到一般的属性和方法 车类------(汽车、自行车、火车) 语法: # 定义一个父类 class Person: def pao(self): print('我能跑') # 定义一个子类 class People(父类名字1,父类名字2,父类名字3.......): def __init__(self, name): self.name = name # 创建父类 class Father: # 父类的吃方法 def chi(self): print('我能吃') # 创建子类 class Son(Father): # 创建子类的跑方法 def pao(self): print('我能跑') 注意: 如果子类中没有定义__init__方法,那么虚拟机会调用父类的__init__方法 # 创建父类 class Father: # 定义父类中的构造方法 def __init__(self, name): self.name = name return None # 父类的吃方法 def chi(self): print('我能吃') # 创建子类 class Son(Father): # 创建子类的跑方法 def pao(self): print('我能跑') 注意: 如果在创建类的时候,没有继承那么虚拟机会默认的让该类继承Object对象,一个类中必须有构造方法。 class Father: # 定义父类中的构造方法 def __init__(self, name): self.name = name return None # 父类的吃方法 def chi(self): print('我能吃') # 创建子类 class Son(Father): # 创建子类的跑方法 def pao(self): print('我能跑') 注意: 继承本质上来说就是将父类中的一般方法或属性的代码直接在子类中先加载,然后再加载子类中的方法和属性,如果出现同名的情况,那么就会将前面的数据进行覆盖。
-
多肽
1. 多肽 一类事物有多种形态 多肽和继承有关 2. 多肽性 向不同的对象发送同一条信息,不同的对象在接收到信息的时候,会做出不同的反应。
-
多肽性的好处
1. 增加程序的灵活性 2. 增加程序的可扩展性
用面向对象思想解决问题的思路
1. 找问题中的对象 2. 对对象进行分类,然后提取出共有的特性(属性)以及功能(方法)