黑马程序员技术交流社区

标题: 一个关于构造代码块的小问题 [打印本页]

作者: 冯佩    时间: 2013-1-20 22:06
标题: 一个关于构造代码块的小问题
本帖最后由 张向辉 于 2013-1-22 11:17 编辑

请教,在构造代码块中能该问静态变量吗?
作者: txl    时间: 2013-1-20 22:14
不知道你表达的是什么意思,能表达的清楚些么
作者: 黑马刘杰    时间: 2013-1-20 22:25
可以。静态方法中只能访问静态变量,而静态变量可以被构造方法,静态方法,方法访问。
作者: 贾文泽    时间: 2013-1-20 23:13
可以的,静态变量在函数加载的时候就存在于内存中,优先于对象存在,
构造代码块是在建立对象时,构造函数执行前   执行,对所有对象统一初始化
在构造代码块中可以访问到静态变量

作者: 罗广伟    时间: 2013-1-20 23:34
本帖最后由 罗广伟 于 2013-1-20 23:42 编辑

//构造代码块可以访问静态变量,因为静态变量在类加载的时候就加载了,而构造代码块是在对象建立的时候才运行,静态变量存在早于构造代码块。
class Demo
{
        static int a;//定义静态变量
        {
                a=1;//在构造代码块中,将a值设为1,此时访问了静态变量
        }
        void run()
        {
                System.out.println(a);
        }
        public static void main(String[] args)
        {
                Demo d= new Demo();//此时对象建立构造代码块会运行
                d.run();
        }
}

//运行结果为:1




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