面向对象编程介绍

面向过程编程

核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么然后干什么。。。
基于该思想编写程序好比在设计一条流水线,是一种机械式的思维方式

优点:复杂的问题流程化、进而简单化
缺点:扩展性差

面向对象编程

核心对象二字,对象是特征与技能的结合体
基于该思想编写程序就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式

优点:可扩展性强
缺点:编程的复杂度要高于面向过程

类:种类、分类、类别
对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体
强调:站的角度不同,总结出的类是截然不同的

在现实世界中:先有的一个个具体存在的对象,然后随着人类文明的发展才了分类的概念
在程序中:必须先定义类,后调用类来产生对象

假设要写一个选课系统


站在选课系统的角度,先总结现实世界中的学生对象

对象1:
特征:
学校='oldboy'
姓名='耗哥'
年龄=18
性别='male'
技能:
选课

对象2:
特征:
学校='oldboy'
姓名='猪哥'
年龄=17
性别='male'
技能:
选课

对象3:
特征:
学校='oldboy'
姓名='帅翔'
年龄=19
性别='female'
技能:
选课

站在选课系统的角度,先总结现实世界中的学生类

学生类:
相似的特征:
学校='oldboy'
相似的技能
选课


在程序中
1、先定义类

class OldboyStudent:
school='oldboy'

def choose_course(self):
print('is choosing course')

类体代码会在类定义阶段就立刻执行,会产生一个类的名称空间

print(OldboyStudent.__dict__)
print(OldboyStudent.__dict__['school'])
print(OldboyStudent.__dict__['choose_course'])
OldboyStudent.__dict__['choose_course']()

print(OldboyStudent.school) #OldboyStudent.__dict__['school'] print(OldboyStudent.choose_course) #OldboyStudent.__dict__['choose_course']

#查 OldboyStudent.choose_course(111)
#增,改 OldboyStudent.country
='China' #OldboyStudent.__dict__['country']='China' OldboyStudent.country='CHINA' #OldboyStudent.__dict__['country']='China'

#删 del OldboyStudent.school
print(OldboyStudent.__dict__)


#2、后调用类产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例
stu1=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
stu2=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
stu3=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例

猜你喜欢

转载自www.cnblogs.com/chillwave/p/9225099.html