面向对象和面向过程比较
面向过程:
核心是过程,过程指的是解决问题的步骤,即先干什么再干什么然后干什么
基于该思想写程序好比在设计一条流水线,是一种机械式的思维方式。
优点:复杂的问题流程化,进而简单化
缺点:扩展性差
面向对象:
核心是对象:对象是特征与节能的结合体。
基于该思想编写程序就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。帝说:万物皆对象
优点:可扩展性强
缺点:编程的复杂程度要高于面向编程。
类
种类、分类、类别
对象是特征与技能的结合体,类是一系列 对象 相似的特征与技能的结合体
强调:站的角度不同,总结出的类是截然不同的。
在现实世界中,先有的一个个具体存在的对象,然后随着人类文明的发展,才有了分类的概念
在程序中,必须先定义类,后调用类来产生对象
‘‘‘类:种类、分类、类别 对象是特征与技能的结合体,类是一系列对象相似的特征与技能的结合体 强调:站的角度不同,总结出的类是截然不同的 在现实世界中:先有的一个个具体存在的对象,然后随着人类文明的发展才了分类的概念 在程序中:必须先定义类,后调用类来产生对象 站在老男孩选课系统的角度,先总结现实世界中的老男孩的学生对象 对象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.schoolprint(OldboyStudent.__dict__) #2、后调用类产生对象,调用类的过程,又称为类的实例化,实例化的结果称为类的对象/实例stu1=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例stu2=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例stu3=OldboyStudent() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9225777.html
时间: 2024-08-05 11:46:24