• 面向对象编程练习(开篇)


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

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

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

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

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

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

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

        

        

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

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

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

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

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

       

  • 相关阅读:
    【原】React操作表单
    【原】使用webpack打包的后,公共请求路径的配置问题
    【原】React中,map出来的元素添加事件无法使用
    codeforces 1288C. Two Arrays(dp)
    Educational Codeforces Round 80 A-E简要题解
    HDU 2586 ( LCA/tarjan算法模板)
    POJ 1330(LCA/倍增法模板)
    POJ 3368 (ST表)
    POJ 3264 Balanced Lineup(ST模板)
    codeforces 1285E. Delete a Segment
  • 原文地址:https://www.cnblogs.com/Earth-SmaThing/p/10140086.html
Copyright © 2020-2023  润新知