「こんにちは、アミーゴ! 今日は、ビラーボが変数が初期化される順序について話します。」
いくつかのコードを見ていると想像してください。変数はどのような値を取得しますか?
コード
class Cat
{
public int a = 5;
public int b = a + 1;
public int c = a * b;
}
コード
class Cat
{
public int a = getSum();
public int b = getSum() - a;
public int c = getSum() - a - b;
public int getSum()
{
return a + b + c;
}
}
「それって本当に許されるの?」
「もちろんです。クラスのメンバーのメソッドとフィールドが宣言される順序は重要ではありません。」
クラスは上から下にロードされるため、フィールドはすでにロードされている他のフィールドにのみアクセスすることが重要です。この例では、b はaにアクセスできますが、 cについては何も知りません。
「そして何が起こるでしょうか?」
「変数が作成されると、デフォルト値が取得されます。」
コード | 本当に何が起こるのか |
---|---|
|
|
|
|
「なんてことだ! とても簡単なことだよ。ありがとう、ビラーボ。君は本当の友達だよ!」
「万歳! ビラーボには友達がいるよ!」
GO TO FULL VERSION