怎么static 还可以这样用呀? 请教各位!!!
public class Static {
//这里是什么意思呀 怎么static 还可以这样用呀?
static {
int i=5;
}
static int i,j;
public static void main(String[] args){
i--;
method();
System.out.println(i+ j + ++i);
}
public static void method(){
j = i++ + ++i;
}
}
//这里是什么意思呀 怎么static 还可以这样用呀?
static {
int i=5;
}
这样做有什么作用呀?
请教各位
------解决方案--------------------static 数据初始化
== public static i = 10
------解决方案--------------------静态初始化代码块
在类加载的时候执行
这里的作用就是在开始直接给i赋值为5,不然在初始化i,j的时候是给0值的
------解决方案--------------------public class StaticTest{
static {
int i=5;
System.out.println(i);
}
}
==============================
你可以试着执行一下上面的代码,能很好的说明static{}这个静态初始化代码块市在什么时候执行的,希望对你有帮助!
------解决方案--------------------static 可以修饰属性,方法,为什么就不能修饰块呢?
这儿就是修饰块.
------解决方案--------------------静态块
------解决方案--------------------静态初始化块,他在类加载时调用
与其区别的是初始化块,在类创建时调用,如
public class Static {
{
int i=5;
}
static int i,j;
public static void main(String[] args){
i--;
method();
System.out.println(i+ j + ++i);
}
public static void method(){
j = i++ + ++i;
}
}
------解决方案--------------------biggestfinger:
public class StaticTest{
static {
int i=5;
System.out.println(i);
}
}
你的代码我运行了,结果是5。但是后面还跟了一句话
Exception in thread "main "
java.lang.NoSuchMethodError:main
------解决方案--------------------静态初始块
------解决方案--------------------当类被载入时,自动执行static静态代码块,且只被执行一次经常用于类属性的初始化