[java]报错问题
public class HelloWorld{int i;
int[] arr=new int;
arr=0;
arr=1;
HelloWorld(int x){
i=x;
}
public static void main(String[] args){
HelloWorld ob=new HelloWorld(5);
}
为什么会这样报错呢?错在哪里?? 某不懂Java,但對int[] arr=new int;這語法很懐疑。。。
可能 要寫成 arr[] = 0; 这问题好解决,把arr = 0; arr = 1;写在一个static block里就行.
public class HelloWorld{
int i;
static int[] arr=new int;
static {
arr = 0;
arr = 1;
}
HelloWorld(int x){
i = x;
}
public static void main(String[] args){
HelloWorld ob = new HelloWorld(5);
}
}
这样在一个类内但不在任何方法内的static代码块叫做静态构造器,是在一个类初次被装载的时候执行的.如果一个类中包含有多个静态构造器,则按书写顺序执行.
构造器的执行顺序是:
初始化(静态变量只执行一次,实例变量在构造实例时执行)
->静态构造器(只执行一次)
-> 实例构造器(实例构造的时候执行).
P.S. 不要用C++的语法去猜Java语句... 楼上。。有问题啊!
这样我试了。还是有问题。
public class HelloWorld{
int i;
int[] arr;
HelloWorld(int x){
i = x;
arr=new int;
arr = 0;
arr = 1;
}
public static void main(String[] args){
HelloWorld ob = new HelloWorld(5);
}
}
把构造放里面去。。这样就不会出问题了。 嗯原先少打了个static.发帖前没先编译真罪过...= = static {
arr = 0;
arr = 1;
}
还有这种初始化啊? 真厉害 static {
arr = 0;
arr = 1;
}
完全没有问题, 问题出在 arr本身不是静态变量 不能够在静态块中初始化
页:
[1]