次のプログラムの出力は次のとおりです。
superstatic block static blockn0 inmain super constructor constructor
コードは次のとおりです。
class StaticSuper{
static {
System.out.println("superstatic block");
}
StaticSuper(){
System.out.println("super constructor");
}
}
public class StaticClassExample extends StaticSuper{
static int rand;
static {
rand =(int) (Math.random() * 6);
System.out.println("static blockn" + rand);
}
StaticClassExample(){
System.out.println("constructor");
}
public static void main(String[] args) {
System.out.println("inmain");
StaticClassExample st= new StaticClassExample();
}
}
"inmain" が最初にあるのに 3 番目に表示されるのはなぜmain()
ですか? 次の意味を教えてください。
static {
// some lines
}
クラスで。