zoukankan      html  css  js  c++  java
  • 面向对象【林老师版】:面向过程vs面向对象(一)

    一、面向过程

    1、引子

    面向过程:核心是过程二字,过程指的是解决问题的步骤,设计一条流水线,机械式的思维方式
    优点:复杂的问题流程化,进而简单化
    缺点:可扩展性差

    2、验证代码

    import json
    import re
    def interactive():
        name=input('>>: ').strip()
        pwd=input('>>: ').strip()
        email=input('>> ').strip()
        return {
            'name':name,
            'pwd':pwd,
            'email':email
        }
    
    def check(user_info):
        is_valid=True
    
        if len(user_info['name']) == 0:
            print('用户名不能为空')
            is_valid=False
    
        if len(user_info['pwd']) < 6:
            print('密码不能少于6位')
            is_valid=False
    
        if not re.search(r'@.*?.com$',user_info['email']):
            print('邮箱格式不合法')
            is_valid=False
    
        return {
            'is_valid':is_valid,
            'user_info':user_info
        }
    
    def register(check_info):
        if check_info['is_valid']:
            with open('db.json','w',encoding='utf-8') as f:
                json.dump(check_info['user_info'],f)
    
    
    
    def main():
        user_info=interactive()
    
        check_info=check(user_info)
    
        register(check_info)
    
    if __name__ == '__main__':
        main()

    二、面向过程编程

    1、什么是面向对象?

    面向对象:核心就是对象二字,对象就是特征与技能的结合体
    优点:可扩展性强
    缺点:编程复杂度高
    应用场景:用户需求经常变化,互联网应用,游戏,企业内部应用

    2、什么是类?

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

    强调:站在不同的角度,得到的分类是不一样的

    1、在现实世界中:

    一定先有对象,后有类

    2、在程序中:

    一定得先定义类,后调用类来产生对象,站在路飞学院的角度,大家都是学生

    3、现实中的对象

        对象1:王二丫
            特征:
                学校='luffycity'
                名字='王二丫'
                性别='女'
                年龄=18
            技能:
                学习
                吃饭
                睡觉
    
        对象2:李三炮
            特征:
                学校='luffycity'
                名字='李三炮'
                性别='男'
                年龄=38
            技能:
                学习
                吃饭
                睡觉
    
        对象3:张铁蛋
            特征:
                学校='luffycity'
                名字='张铁蛋'
                性别='男'
                年龄=48
            技能:
                学习
                吃饭
                睡觉

    4、现实中路飞学院的学生类

            相似的特征
                学校='luffycity'
    
            相似的技能
                学习
                吃饭
                睡觉

    三、面向对象代码实现

    #先定义类
    class LuffyStudent:
        school='luffycity'
    
        def learn(self):
            print('is learning')
    
        def eat(self):
            print('is sleeping')
    
    
    #后产生对象
    stu1=LuffyStudent()
    stu2=LuffyStudent()
    stu3=LuffyStudent()
    
    print(stu1)
    print(stu2)
    print(stu3)
    

      

     

  • 相关阅读:
    EF6(CodeFirst)+MySql开发遇到的坑
    Entity Framework mvc Code First data migration
    SQL 修改排序规则的问题 sql_latin1_general_cp1_ci_as
    sql 与linq的转换
    Entity Framework的事务提交
    .net Quartz 服务 作业调度
    如何插上U盘 自动复制内容
    SQL学习之--触发器
    原生javascript与jquery 的比较
    原生javascript学习
  • 原文地址:https://www.cnblogs.com/luoahong/p/9913557.html
Copyright © 2011-2022 走看看