Java学习 动手动脑

以下代码为何无法通过编译?哪儿出错了?

函数中没有参数

请运行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();
 }
}

原文地址:https://www.cnblogs.com/L-L-ALICE/p/14159880.html