次のような構造があります。
class Foo{
class Bar{ ... }
private class Baz{ ... }
}
FooにBarアクセスする必要がありますがBaz、Bazモジュールとそれをインポートする他のモジュールの両方に対して非公開のままにする必要があります。
質問:
- と に共有
Bazする方法はFooありBarますか?」 - 必要なアクセスを許可するために使用できる他のクラス構造はありますか?
次のような構造があります。
class Foo{
class Bar{ ... }
private class Baz{ ... }
}
FooにBarアクセスする必要がありますがBaz、Bazモジュールとそれをインポートする他のモジュールの両方に対して非公開のままにする必要があります。
質問:
Bazする方法はFooありBarますか?」これを実現するためにクラスをネストする必要はありません。
class Foo {
// entire module can access
}
class Bar {
// entire module can access
}
private class Baz {
// only objects in this file can access
}
ただし、型を入れ子にしたい場合は、を利用できますfileprivate。
class Foo {
class Bar {}
fileprivate class Baz {}
}