zoukankan      html  css  js  c++  java
  • 阶段1 语言基础+高级_1-2 -面向对象和封装_8两个对象使用同一个方法的内存


    两个对象在main方法里面调用
    新建一个Demo02PhoneTwo类,复制之前的代码到这里

    这里创建了一个Two对象

    one对象是苹果
    two对象。把参数改成三星。


    内存里又发生了什么事,这次不一样的地方是有两个对象

    程序要想执行,main方法先进栈,

    main进栈后就要逐行的执行。首先第一行我们创建了对象叫做one。

    这就是一个局部变量,名称中保存的是一个地址的值,谁的地址呢?堆的,凡事new出来的都在堆当中

    成员变量过来以后会有默认值

    接下来是成员方法,成员方法很特殊。为什么特殊?他所保存的实际上是地址的值?谁的地址的值呢?是右侧的,在方法区中的地址值。看下面绿色箭头的指向

    自己的地址是0X666.自己的地址就赋值交给one去处理。看红色箭头的指向。。根据这个地址能找到这个对象。

    下面就是赋值的操作,苹果 8388.0 、黑色。默认值已经被修改为指定的数值

    再往后就是调用两个方法call和sendMessage这两个方法

    one通过红色找到这个对象,再通过绿色找到对应的方法


    显示蓝色的箭头部分,call方法进栈。给谁打电话?乔布斯。然后调用方法,调用后 看差号。立马出栈


    然后是sendMessage方法,红色、绿色、进栈、蓝色、调用方法

    第二个对象

    里面的成员方法的地址和第一个对象的地址是一样的

    看有色绿色的箭头

    0x999给对象two赋值

    主要看下面橙色的箭头

    修改变量的值

    调用最下面的红色框内的 call方法和sendMessage方法。通过橙色箭头找对对象。再通过绿色箭头找到方法。




    two如果不是重新new 的对象


  • 相关阅读:
    react native android 应用状态(前端或后台)的判断
    react native native module
    Nodejs项目重复文件扫描
    clipboard.js文本复制到剪贴板的现代方法
    微信小程序如何跳转到另一个小程序
    百度小程序button去掉默认边框
    下拉框select中option居中样式
    css中如何实现左边的高度随着右边改变而改变
    js判断是否手机自动跳转移动端
    webpack安装整理
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11194677.html
Copyright © 2011-2022 走看看