zoukankan      html  css  js  c++  java
  • 类涉及的空间关系及组合(可变项地址面)

    定义类的语句执行结束就会占有自己的空间

    其中储存着属于类的静态属性和方法名所对应的内存地址(调用这个方法则寻到这个地址并执行)

    对象实例化,开在独立开辟一个属于这个对象的空间,这个对象空间里最开始只有类对象指针(指向这个对象所属的类),

    实例化之后,自动执行构造函数:将此这个对象传给self,空间内新增了通过构造函数封装的一系列值.对象空间储存方法存的是函数名和对应的内存地址

    对象调用方法或静态属性的顺序是:

    先找对象空间,再找类指针的对应的类空间,再找父类……

    类是模板,通过类名是找不到对象空间的值的

    对象是由模板而来,可以找的到类的属性方法,但是只能找,不能修改(此处有坑)

    类可以修改类的静态对象,但是,对象不能,一旦执行改形式的语句只会给对象的空间内添加属性,与类无关。

    面试题(坑)

    如果是对于类的一个内容可变的属性进行操作,对于可变的内容是可以通过对象名进行一系列增删改操作的.

    以列表为例,类内对应属性储存的是这个列表的地址值,对其增删改会改变列表的内容但是不会改变列表的地址,

    也就是说实际上并没有改变类空间,变得是这个地址对应的内容.而这个内容并没有存在类空间里.

    同样,这里的重点是这个地址对应的内容是可变的,如果该地址对应于一个不可变的"alex",

    那么通过对象名试图对其进行修改只会在空间里行开辟一个地址,且保存在对象的空间里,与类无关。

    组合的定义:给一个类的对象封装一个属性,这个属性是另一个类的对象。

                         前一个类在具有了这个本身就是另外一个类的属性之后,便可以通过访问这个属性来调用对应类中的方法和属性了.

                         避免了一些面对对象程序设计时,主体的错误.

  • 相关阅读:
    js中return false,return,return true的用法及区别
    C#中关于页面缓存
    项目运行时出现webconfig="machineApplication......."之类的错误
    后台页面无法找到前台页面控件的ID
    .NET对文件的多种操作
    前台JS代码向后台传递参数
    多条件查询的Gridview分页显示
    C#中对数据做视图处理RowFilter
    JavaScript自触发时的参数传递
    Sys.WebForms.PageRequestManagerTimeoutException:服务器请求超时
  • 原文地址:https://www.cnblogs.com/shachengcc1/p/11135365.html
Copyright © 2011-2022 走看看