• 面向对象的基础概念


    面向过程与面向对象的区别
        面向过程编程思想:是一种机械化的思维,就像一条流水线,指定流水线只能生产指定产品
    
           缺点:牵一发而动全身 扩展性非常低,可维护性差
    
            优点:将复杂的事情,简单化,并流程化  应用场景:对扩展要求较低的程序
    
                 eg:系统内核,shell脚本,计算器啥的
    
        面向对象是一种编程思
            对象是什么
            面向对象关注点是对象,把你的思维角度从具体操作这 变成了一个指挥者
            例如把大象装进冰箱
                1.打开冰箱
                2.塞入大象
                3.关闭冰箱
             以上就是典型面向过程思想
             换成面向对象
             找一个具备装大象这个技能的对象 然后命令它装大象
    
             注意:对象不是凭空产生的 需要我们自己先设计对象  然后在使用它们
    
            优点:
                不需要在关注具体的实现细节 可以更好的关注业务逻辑
                扩展性提高了,维护性高,复用性高
            缺点:
                对比面向过程而言.程序需要先设计,结构更复杂,编程复杂度提高了
                无法准确预知执行结果
            应用场景:
                对于扩展性要求较高的应用程序
                qq,微信,王者荣耀
    
    
            面向对象是一种编程思想,让你不需要关心具体实现细节,而是关注对象
    
    
            什么是对象?
            万事万物都是对象
            对象:具备某种特征与行为的集合体并且是具体存在的就称之为对象
                如来佛祖,owen
            类: 某些具备相同特征和相同行为的集合体 ,是一种抽象概念    类型==类
                人,动物,狗,老男孩的老师
    
            特征==属性
            行为==技能
    
    
            对象和类的关系
            在生活中 先有对象 再有类
            在代码中 必须现有类 才能产生对象   (因为你需要提前告诉计算机这个对象是什么样的有什么技能)
    
            编程思想不是某一个具体语言或技术 ,
            面向对象的语言:
            python,Java,C++,C#
            面向过程:
            C,ruby
    使用class关键字来定义一个类
    
    类名称为大驼峰命名法
    所有单词首字母大写
    小驼峰 第一个单词首字母小写
    """
    # class ClassName:
    #     pass
    
    class Student:
        # 描述特征使用变量 (属性)
        school = "olbBoy"
    
        # 描述技能使用函数 (方法)
        def say_hi():
            print("hello i am tiger")
    
        # class中的代码仅在第一次加载时执行
        print("test...")
        pass
    
    #
    print(Student.say_hi)
    Student.say_hi()
    print(Student.school)
    
    # Student.say_hi()
    
    
    # 调用类来获得一个对象
    # stu1 = Student()
    # stu1.say_hi()


    class Person:
    country = "china"

    def eat(self):
    print("正在吃面...")


    p1 = Person()
    # print(p1)
    # print(Person)

    # print(p1.country)
    # p1.eat()

    # 为对象增加了属性
    p1.name = "张三"
    print(p1.name)


    # 给p1对象单独添加了country
    p1.country = "USA"
    # 在访问时优先访问自己名称空间的内容 如果找不到 会自动找类中的属性
    print(p1.country)
    print(Person.country)

    # 每个对象都会存储自己所在类的地址 可以使用__class__来访问
    print(p1.__class__)
    print(type(p1))

    # 查看名称空间中的内容
    print(p1.__dict__)
    print(Person.__dict__)




  • 相关阅读:
    使用cygwin中的awk工具进行mysql binlog日志查看[利刃篇]
    设置win版vim启动项[利刃篇]
    php cli模式和浏览器访问下加载php.ini文件的注意事项[架构篇]
    sublime text 3中安装ctags支持函数跳转,安装convertToUtf8支持中文步骤[工具篇]
    在notepad++中使用正则匹配功能(一-龥!-~) 中文[利刃篇]
    微软职位内部推荐-SENIOR SOFTWARE ENGINEER
    微软职位内部推荐-Senior SDE
    微软职位内部推荐-SDEII
    微软职位内部推荐-SOFTWARE ENGINEER II
    微软职位内部推荐-SENIOR SOFTWARE ENGINEER
  • 原文地址:https://www.cnblogs.com/wyf20190411-/p/10872071.html
Copyright © 2020-2023  润新知