zoukankan      html  css  js  c++  java
  • 面向对象编程和类的概念

    面向对象和面向过程比较

    面向过程:

    核心是过程,过程指的是解决问题的步骤,即先干什么再干什么然后干什么

    基于该思想写程序好比在设计一条流水线,是一种机械式的思维方式。

    优点:复杂的问题流程化,进而简单化

    缺点:扩展性差

    面向对象:

    核心是对象:对象是特征与节能的结合体。

    基于该思想编写程序就好比是在创造一个世界,你就是这个世界的上帝,是一种上帝式的思维方式。帝说:万物皆对象

    优点:可扩展性强

    缺点:编程的复杂程度要高于面向编程。

    种类、分类、类别

    对象是特征与技能的结合体,类是一系列 对象 相似的特征与技能的结合体

    强调:站的角度不同,总结出的类是截然不同的。

    在现实世界中,先有的一个个具体存在的对象,然后随着人类文明的发展,才有了分类的概念

    在程序中,必须先定义类,后调用类来产生对象

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

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

    站在老男孩选课系统的角度,先总结现实世界中的老男孩的学生对象
    对象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() # 调用类会得到一个返回值,该返回值就是类的一个具体存在的对象/实例
  • 相关阅读:
    Vue 创建项目
    Vue组件之间的传参
    Vue自定义组件
    Python开发之路
    爬虫
    手撸系列
    Django从入门到不会放弃
    前端
    day29 TCP的三次握手 TCP的四次挥手 基于TCP的socket
    day28 客户端服务端架构介绍
  • 原文地址:https://www.cnblogs.com/Roc-Atlantis/p/9225777.html
Copyright © 2011-2022 走看看