2012-04-16 8 views
6

私はAndroidのソースを参照しています。ちょっと読んでいます。Android.Util.JsonReaderに奇妙なコードがあります。次のようになります。特有のJavaスコープ

これは正確に何ですか。つまり、new割り当ての直後の範囲ですか?私が正しく理解している場合、JsonReaderがインスタンス化されると(静的ではないのですが)、stackがコンストラクタのthis.stack = ...ではなく、ここで初期化されます。

スコープは何をしていますか? stackが初期化された後に実行されますか?私はちょうどこのパターンの名前とその使い方についてここで混乱しています。

答えて

5

新しいステートメントには関係ありません。初期化子です。無名のパラメータのないコンストラクタのようなものです。

http://docs.oracle.com/javase/specs/jls/se7/html/jls-8.html#jls-8.6

彼らは、テキストの順にクラスのコンストラクタの前に実行され、それをトリガー何

http://docs.oracle.com/javase/specs/jls/se7/html/jls-12.html#jls-12.5

+0

?彼らはおそらく異なるクラスのフィールドの後に、複数の異なるものになることができますか? – Josh

+0

ありがとう、それらはいくつかの素晴らしいリンクです。しかし、なぜ特定のフィールドの直後に表示されるのですか?それはこのクラスに固有のものなのでしょうか?スタックコンストラクタの前には 'stack'に続く〜6つのフィールドがあり、その前にはほぼ同じ量があります。 – Josh

+2

プッシュコールを介してスタックフィールドを操作するため、私はその場にいると思います。 –

関連する問題