黑马程序员技术交流社区

标题: 晕了 [打印本页]

作者: wyq0627java11    时间: 2016-8-18 23:25
标题: 晕了
final修饰的变量的初始化时机:
答:a.未被static关键字修饰
       * 可以显示初始化
       * 可以在构造方法中初始化
b.被static修饰
       * 可以显示初始化
       * 可以在静态代码块中初始化
       * 不能在构造方法中初始化
这块有点晕


作者: aliali007    时间: 2016-8-19 17:38
楼主先区分static变量和非static变量的区别。

非static变量是实例相关的,会在对象创建时进行初始化。因此可以在普通代码块、对象的初始化语句或者构造器中进行初始化。静态不能访问非静态,所以非static修饰的final变量不能在static代码块中进行初始化。

static变量是与类相关的,会在类加载时进行初始化。类加载时会执行静态代码块和类的初始化语句(static变量的初始化语句)。因此被static修饰的final变量要么在类的初始化语句中显式地指定初始值,要么在静态代码块中指定初始值。

作者: wyq0627java11    时间: 2016-8-20 12:30
哦哦,谢谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2