Java块有什么用?

来源:百度知道 编辑:UC知道 时间:2024/07/07 05:28:13
Java的静态块static{},还有非静态块{},有什么用?尤其是非静态块,感觉没什么用啊,还有一点最不明白的,在一个方法中:
void a() {
{
}
}
也可以写块,这有什么用呢?我要块里面写东西做什么啊?我不用也行啊,理解不上去,各位高手指点一下啊,详细一些,帮助我理解,谢谢.

准确说块是一个作用域,就是里面的变量之类的数据的作用范围
其中,static{}块中的语句是属于类的本身,不属于类中的任何方法。所以在类定义的时候就被执行开始执行。
非静态块中的变量在{ }外是不可见的!
这些东西真的是一言难进呀!!!
看以下一个例子,自己分析为什么有这样的结果,好好体会,胜过别人写万字!!

public class TestSegment {
public void m(){
System.out.println("mmmm");//不调用时,没有自动执行
}

public static void main(String[] args) {
System.out.println("main");
}
static{//静态块
{ //非静态块
int i=11111; //此处i不影响括号外界的i
System.out.println("ddd"+i);
}
int i =222222; //在此i与前面不重名
System.out.println("sss"+i);
}
}
输出结果//////////////////////////////////
ddd11111
sss222222
main

static{}块在类定义的时候开始执行,而不是对象定义的时候··
也就是说static{}主要是初始化变量的,个人感觉是这样的,至于非静态块没感觉有什么用··