梅卡瓦 2016-03-17 15:02 采纳率: 50%
浏览 1304
已采纳

新手菜鸟,想问一下哪位大神能解释一下类的运行顺序?

  • 写回答

1条回答

  • danielinbiti 2016-03-17 15:11
    关注
     初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。
    
     变量初始化(赋值)和初始化块的执行与相关语句在源码中的放置顺序一致
    
     这里因为static Test t = new Test()在前,所以先执行new Test()赋值语句,再初始化static变量块
     执行完new Test()后,a,b的值都是1,接着往下初始化static b=0赋值,b的值变成0,因为a没有重新赋值,所以值不变,还是1
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置