>ブジェクトの中のオブジェクトをとって、またその中の

後学のためにRecursiveIteratorとかGoFのCompositeパターンを見ておくといいかも。
しかし部屋-本棚-本の場合はそういう発想にはあわないと思うね。