zoukankan      html  css  js  c++  java
  • 面向对象编程练习(开篇)

        今天无意中看到了一些关于面向对象编程的练习题,私以为很是不错,摘录其中较有代表性的几道,供大家学习。

        一.面向对象三大特性,各有什么用处?

        1.继承:解决代码的复用性问题

        2.封装:对数据属性严格控制,隔离复杂度

        3.多态性:增加程序的灵活性和可扩展性

        二.类的属性和对象的属性有什么区别?

        首先,我们需要理解一个概念,python中一切皆对象,所以类本身也是一个对象。因此,此题还可理解为类对象与其他对象的区别。类属性仅是与类有关的数据值,和普通对象属性不同,类属性与实例对象属性无关。这些值像静态成员那样被引用,即使在多次实例化中调用类,它们的值都保持不变,不管如何,静态成员不会因为实例而改变它们的值,除非在实例化中显式的改变。

        

        

        此例中,之所以会出现打印结果的不同,是因为实例化过程中显式的改变了静态变量的值(黄底色)。

        三.类和对象在内存中是如何保存的?

        类以及类的方法在内存中只有一份,根据类创建的对象在内存中各有属于自己的一份。

        根据类创建对象时,对象中除了封装name和age等的属性外,还会保存一个类对象的指针,指针指向当前对象的类。

        当通过对象执行类中的方法时,类对象指针会找到类中的方法,将对象作为参数,传给类方法中的第一个参数 'self'.

       

  • 相关阅读:
    OO先导课——第二次上课
    OO先导课——第一次上课
    OO先导课——JAVA初见懵的知识合集
    OO先导课——作业(1)
    在驱动和应用程序间共享内存
    【求助】NdisSend,自定义数据包发送失败?
    HTTP协议详解(真的很经典)
    原始数据包的分析
    IP数据包的校验和算法
    基于IMD的包过滤防火墙原理与实现
  • 原文地址:https://www.cnblogs.com/Earth-SmaThing/p/10140086.html
Copyright © 2011-2022 走看看