foreachのことをまったく意識してないで作られたクラスから作られたオブジェクトに対しては、アクセス権のある変数名と変数の値に対して列挙するように動く。
つまり外部から使われた場合はpublicのメンバ変数名と変数値が列挙され、内部からthisを経由して呼び出された場合は内部でアクセス出来るprivateなメンバも列挙されるようになる