知识框架
1,面向过程编程强调的是步骤,过程,每一步都是亲自去实现
面向对象关注的是解决问题需要哪些对象
2,对象是事物存在的实体(如一个人)
通常将对象划分为两部分,即静态部分和动态部分
静态部分称为“属性”,即外在特征,外在的属性描述(如人的年龄,身高)
动态部分指的是对象的内在行为,即对象执行的动作或具备的功能(如人可以跑步)
3,类,是封装对象属性和行为的载体,反过来说具有相同属性和行为的一类实体称为类
4,类和对象的关系
对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另一个新的概念–类。类是对某一类事物的描述,是抽象的,概念上的定义。(类相当于是一个模板,对象就是按照这个模板生产的产品)
1,封装
封装是面向对象编程的核心思想,将对象的属性和行为封装起来,其载体是类。类通常会对客户隐藏其实现系节,这就是封装的思想。(封装是为了保证类内部数据结构的完整性,避免外部对内部数据的影响)
2,继承
继承是实现重复利用的重要手段,子类在通过继承复用了父类的属性和行为的同时,又添加了其特有的属性和行为(Python中可以说子类的实例都是父类的实例,但不能说父类的实例是子类的实例)
3,多态
多态是面向对象的重要特性,就是同一种事物表现出的多种形态。
同一个函数,属性不同表现出来的结果也不同(例如有一个函数叫某个人来吃饭,函数要求传递的参数是人的对象,若来了一个美国人(属性不同),看到的可能是用刀和叉在吃饭;而若来了一个中国人(属性不同),则使用筷子吃饭,这就体现同一个种方法,可是却产生了不同的形态(结果不同),这就是多态)
4,面向对象的基本设计步骤
第一步:发现类,拥有相同(或者类似属性和行为的对象都可以抽象出一个类。一般使用名词提炼法。一般名词都是类
第二步:发现属性。一般通过找名词的方法来确定
第三步:发现方法。一般通过找出动词的方式来确定
1,定义类
class 类名[(父类)]:
#属性
#方法
def 方法名(self[,参数列表]):
#方法体
例
class phone:
def call(self):
pritn("打电话")
def sendMsg(self):
print("发消息")
2,创建对象
通过类创建对象的过程叫做实例化
语法:引用对象名=类名([参数列表])
iphone = phone()
print打印对象会输出一些很难懂的信息。事实上print函数调用了对象的__str__()方法输出打印字符串信息。