梅卡瓦 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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站