class Welcome{
public static void main(String args[]){
System.out.println(Hello.a);
}
}
class Hello{
static int a=10;
static Hello h=new Hello();
{
System.out.println("IB");
}
static{
System.out.println("SB");
}
}
IB
SB
10
私は本当にこの実行の背後にあるロジックを理解していません。私によれば、静的変数は初期化され、静的ブロックは実行されます。インスタンス変数が初期化され、インスタンスブロックが実行されます。
しかし、これはちょっと混乱しているようです。実際の実行のステップバイステップの順序が与えられれば、大きな助けになるでしょう。
static Hello h=new Hello();
の意味はなんですか?
これはどのように処理されますか?
どのような方法(複数可)で、あなたの説明が出力に適合していないのですか? –
各データフィールドをクラスのプライベートメンバーとしてカプセル化する必要があるオブジェクト指向プログラミングの方法に従ってください。 – abcOfJavaAndCPP