黑马程序员技术交流社区
标题:
关于静态代码块的问题
[打印本页]
作者:
郭军亮
时间:
2013-5-8 10:04
标题:
关于静态代码块的问题
本帖最后由 郭军亮 于 2013-5-8 23:41 编辑
class StaticCode
{
static
{
System.out.println("a");
}
{
System.out.println("c"+this.num);
}//请问这段代码是什么意思
StaticCode(int x)
{
System.out.println("d");
}
public static void show()
{
System.out.println("show run");
}
}
class StaticCodeDemo
{
static
{
//System.out.println("b");
}
public static void main(String[] args)
{
new StaticCode(4);//a c d
}
static
{
///System.out.println("c");
}
}
作者:
ZhaoYuBetter
时间:
2013-5-8 10:18
一个是静态块 static {},一个是实例块 {},静态块用于初始化静态变量,实例块用于初始化 成员变量
作者:
杜超
时间:
2013-5-8 10:31
{
System.out.println("c"+this.num);
}
这个是构造代码块,构造代码块是给所有对象初始化,对象一建立就运行
静态代码块是优先于对象存在的,
顺序:静态代码块->构造代码块->构造函数
作者:
明天,你好
时间:
2013-5-8 10:35
static 是静态代码块 随着类的加载而执行,只执行一次。下边那个代码块是构造代码块,只要创建对象就会执行
作者:
Miss小强
时间:
2013-5-8 11:55
一个是静态代码块,在类加载的时候执行,一个是构造代码块,或者说匿名构造函数;在创建对象的时候执行;
打个比方说:小明妈妈生小明的例子。。
小明在被怀上的时候,是不是得去先办好准生证,在生下来的时候是不是得去办身份证。
办准生证就是静态代码块执行,
小明生下来去办身份证就得去办身份证;就是构造代码块。。
说的有点恶心啊。。。希望能帮到你。。。
作者:
蔡增辉
时间:
2013-5-8 12:02
静态代码块:static{} 随着类的加载而执行,且只执行一次;用于对类进行初始化;若它与main方法处于同一个类中,则优先于main函数执行;
构造代码块:{} 当创建对象时被执行,重点要注意成员变量初始化顺序:默认初始化,显式初始化,构造代码块初始化,构造方法初始化;
成员变量的最终值是最终初始化所赋予的值;
作者:
孤独的鸟人
时间:
2013-5-8 12:22
static
{
System.out.println("a");
}
这是静态代码块,随着类的加载而执行,只执行一次,用于给类进行初始化的。
{
System.out.println("c"+this.num);
}
这是构造代码块,创建对象时即被执行,它是给对象初始化的。
作者:
黑马-雷钊
时间:
2013-5-8 12:43
class StaticCode
{
static
{
System.out.println("a");
}//这是静态代码块,存在方法区中,类一加载就执行它里面的内容。是用来给类初始化用的。
{
System.out.println("c"+this.num);
}//这是构造代码块,只要你一创建这个对象这个代码块里面的内容就会执行。创建几个对象它就执行几次
StaticCode(int x)
{
System.out.println("d");
}//这个是构造函数,没有它对象就创建不了。构造函数和构造代码块差不多。可是说都是给对象初始化用的。但是构造函数假如没写系统会默认加上无参的。
public static void show()
{
System.out.println("show run");
}//这是静态方法。调用它有两种方式,一种是用类名.show()调用,还有一种是创建对象调用。
}
假如还不理解可以回复我
作者:
飞鸟青崖
时间:
2013-5-8 15:06
第一个大括号中的的是静态代码块,它随着类加载进内存而执行,仅执行一次。第二个大括号中的是代码块,在每一次类的实例化时都会执行。
作者:
DMY2008
时间:
2013-5-8 15:20
这个问题不是解决了嘛,为什么还不改一下呢!
作者:
刘胜寒
时间:
2013-5-8 16:11
问题如果以解决,请及时修改分类,否则继续提问问,谢谢合作!(不要嫌我烦,我感觉也挺烦躁的。这是我的责任啊)
作者:
江大海
时间:
2013-5-8 23:36
有static的叫静态代码块,是给类初始化的,什么都没有的那个叫构造代码块,是给所有对象初始化的,和类名一样的叫构造函数,是给对应对象初始化的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2