zoukankan      html  css  js  c++  java
  • day22

    今日内容:

    3.面向对象

    面向对象:

               面向过程:1优点:将复杂的事情简单化,流程化

                               2:缺点:扩展性低,可维护性差

                                3,应用场景:对扩展性要求较低的程序

                                                 系统内核,shell脚本,计算器啥的

                面向对象:是一种编程思想

                               关注的点是对象,把你的思维角度从具体操作者变成了一个指挥者

                               案例:把大象装进冰箱

                                      1,打开冰箱

                                      2,塞入大象

                                       3,关闭冰箱

                                       这就是一个典型的面向过程思想

                                       换成面向对象

                                               找一个具备装大象这个技能的对象,然后命令它装大象

                                               (这时候整个程序就会发生巨大变化,需要什么就调取具体对象 ,扩展性更强)

                                               面向对象优点:不需要在关注具体的实现细节 可以更好的关注业务逻辑

                                                                     扩展性提高了,维护性高 ,复用性高

                                                           缺点:对比面向过程而言,程序需要想设计,结构更复杂  ,程序复杂度提高了                                                  

                                                                    无法准确预知执行结果

                           面向对象应用场景:

                                     对于扩展性要求较高的应用程序。     qq    微信,等

                          对象:具备某种特征与行为的集合体并且是具体存在的就称之为对象               例子:如来佛祖,马克思

                          类:某些具备相同特征和相同行为的集合体,是一种抽象概念          例子:人, 动物,狗 。

                      在程序中先定义类型,通过类型在查找对象=====即必须先有类,才能产生对象,因为你要提前告诉计算机这个对象是什么样的,让后做什么事

        用法:                      

    #关键字:class
    # 类名称命名法: 为大驼峰,所有单词首字母全大写。 小驼峰:第一个单词首字母小写
    class Student:
    #如何描述属性(变量) 属性
    shool = "olbBOY"
    #描述技能使用的函数 方法
    def say_hi(self):
    print("三号小学生")
    # 创建对象
    print("txst...")
    pass
    # stu1 = Student() #通过字符串来完成任务
    # stu1.say_hi()
    print(Student.say_hi)
    Student.say_hi()
    print(Student.shool)
    class Person:
    country = "china" #属性
    def eat(self): #描述技能使用的函数 方法
    print("在睡觉。。。")
    p1 = Person()
    print(p1)
    print(Person) #<class '__main__.Person'>
    print(p1.country) #china
    p1.eat() #在睡觉。。。
    #为对象增加了属性
    p1.name = "张三"
    print(p1.name)
    #print(Person.name) #报错,
    # 对象里的名称空间是独立的,类有类自己的名称空间,两个彼此独立,但是对象可以访问类的名称空间
    #对象优先查找自己的,自己没有在去查找类里的
    p1.country = "USA" #给p1对象优先添加了country
    #在访问时优先访问自己名称空间的内容,如果找不到 会自动找类里的属性
    print(p1.country) # USA
    print(Person.country) # china
    #每个对象都会存储自己所在累的地址,可以使用.__class__来访问
    print(p1.__class__)
    print(type(p1))
    #查看名称空间中的属性
    print(p1.__dict__) #{'name': '张三', 'country': 'USA'}
    print(Person.__dict__)

                                                           

                                       

                                              

  • 相关阅读:
    棋盘型动态规划 之 CODE[VS] 1220 数字三角形
    棋盘型动态规划 之 CODE[VS] 1219 骑士游历 1997年
    棋盘型动态规划 之 CODE[VS] 1169 传纸条 2008年NOIP全国联赛提高组
    棋盘型动态规划 之 CODE[VS] 1010 过河卒 2002年NOIP全国联赛普及组
    [实验]自举?只不过是电容和二极管捣的乱
    [嵌入式]I2C协议指东
    [语法]C语言中二维数组做输入参数
    深入类方法。
    今天周六祝大家休息开心,我还在奋斗....
    我们一起来一把.....现在学习真的好累,一天下来脑袋要炸
  • 原文地址:https://www.cnblogs.com/Fzhiyuan/p/10870420.html
Copyright © 2011-2022 走看看