面向对象只是一种思想,并不是一门编程语言
类(class):多个具有特殊功能的集合
对象(object):在一个类中具体实例
抽象:将事务一些共有的特性,属性提取出来,称为--类
程序设计中先有类,根据类创建对象
类的本质是一种数据类型,是开发人员定义的,用法和整形,string字符串基本相同
冒泡排序:
类的定义
class 类名():
类体
class Person():
name='jbb'
age=16
def eat(self,food)
print("eating",food)
1.类体一般包含俩部分,对类特征的描,对类行为的描述
2.缩进区分类体
3.类名只需合法即可:(单个单词全小写book,多个单词使用下划线连接TestBook),常量全大写,函数名(面向对象),单个单词全小写,多个单词第二个单词首字母大写(testBook)
创建对象:
# 创建类 class Person(): # 定义类的属性 name = '' age = 0 # 定义类的行为(方法) def eat(self,food): ''' 定义吃东西的方法 :param food: :return: ''' print("eating",food) pass def run(self): ''' :return: ''' print("running") pass
调用类:
from duixiang import Person if __name__ == '__main__': #创建对象 #对于拥有构造函数的类(构造函数有参数) p1=Person() p1.name="wnag" p1.age=22 print(p1.name) print(p1.age) p1.eat("饺子") p1.run() print(p1.eat) print(p1.run)
面向对象的三大特征
封装:
本质:私有化的一些过程
优点:提高数据安全性,提高数据的复用性
函数,类的使用本身就是封装的一种体现
属性私有化,
方法私有化:函数名钱加入__,使成员函数私有化
class cat():
#共有属性
color=""
#私有属性
__name="kaka"
#共有方法
def eat(self):
#调用私有方法和类
self.__zhu()
print(self.__name)
#私有方法
def __zhu():
print("lal")
私有属性和私有方法不能直接被调用
私有方法的调用:私有的类和属性可以在类的方法中调用
继承
单继承:class 父类类名(object):
类体
class 子类类名(父类类名):
类体
能被调用的都是共有的内容
所有父类的对象都不可调用子类的内容
耦合性:模块与模块之间的联系,会比较紧密,降低模块之间的独立性
内聚性:模块与模块之间的联系,比较生疏,会增强模块的独立性
低耦合,高内聚
__init__构造函数
方法的重写-------子类和父类有相同名称的方法,但是执行的内容不同
子类调用父类的方法时,首先从自己的子类中查找方法的名称,如果找到,则执行自身的方法,找不到,执行父类的方法。
多态:
函数重写就是一种多态的体现
父类的引用指向子类的对象
父类与子类之间有继承关系,子类可以是父类类型,但是父类不能为子类的对象