zoukankan      html  css  js  c++  java
  • 对构造方法的理解

    对象并不是通过构造方法构造的,只是通过构造方法来
    //以程序员自己的意愿进行赋值而已,真正创建对象的是通过new来创建对象的,
    //并且紧接着就会进行默认初始化与显式初始化,有继承父类的话,就是父类对象先被
    //创建出来,然后就初始化,再调用子类的构造方法,至于为什么父类对象实例化了后
    //没有直接掉父类的构造器,是因为new com.第一节.Drived();这里,只调用了子类的构造方法,其实
    //这里会被编译为两句话,一句是实例化对象,第二句是调用构造方法,所以需要通过
    //子类的构造方法来调用父类的构造方法
    //重点:其实jvm调用的构造方法是把类中的变量赋值操作与实例代码块合并成了一个称作<init>的构造方法
    //所以再执行构造方法的时候才会进行显式初始化,而默认初始化是在第一句分配内存时进行的

    // public Test();
    // 0 aload_0 [this]!注意,这里JVM调用的构造方法(也就是上文的<init>方法)第一句其实是把当前对象引用压栈
    //那么这就说明对象已经分配了内存并进行了默认初始化
    // 1 invokespecial java.lang.Object() [14]
    // 4 aload_0 [this]
    // 5 bipush 9
    // 7 putfield deam.Test.b : int [16]
    // 10 aload_0 [this]
  • 相关阅读:
    随机小错2_0527
    随计小错
    C++实现读写文件
    03-树2 List Leaves (25 分)
    获取毫秒级的时间戳
    new对象时,类名后加括号与不加括号的区别
    FoxMail 7.2的邮件存储目录修改
    C/C++ 开源算法库
    VS2015的安装
    脏内存导致BUG的问题
  • 原文地址:https://www.cnblogs.com/lollong/p/10659854.html
Copyright © 2011-2022 走看看