以下代码为何无法通过编译?哪儿出错了?
函数中没有参数
请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。
public class dongshoudongnao
{
public static void main(String[] args)
{
inclass obj=new inclass();
System.out.println(obj.field);
obj=new inclass(300);
System.out.println(obj.field);
}
}
class inclass{
{
field=200;
}
public int field=100;
public inclass(int value) {
this.field=value;
}
public inclass() {
}
}
java初始化时最先匹配构造器,根据参数的不同执行不同的构造函数,并且变量被初始化后可以对其进行赋值并取代原来的变量值,随后进行输出。
上述神奇代码(StrangeIntegerBehavior.java)输出诡异的结果,原因何在?
若是想在静态方法中调用非静态方法或者字段,可以采用以下方法:
public class dongshoudongnao
{
public int a=10;
public dongshoudongnao()
{
System.out.print(a);
}
public static void main(String[] args)
{
new dongshoudongnao();
}
}