クラス宣言とアクセス修飾子
| 修飾子 |
自クラス |
パッケージ |
サブクラス |
その他 |
| public |
○ |
○ |
○ |
○ |
| protected |
○ |
○ |
○ |
× |
| 指定なし |
○ |
○ |
× |
× |
| private |
○ |
× |
× |
× |
内部クラス
ネスとされたクラスをネステッドクラスと呼ぶ。
ネステッドクラスはstatic宣言された場合、トップレベルネステッドクラスとなり、されない場合、内部クラス(またはインナークラス)となる。
トップレベルネステッドクラスはネストしているクラスのインスタンスなしでインスタンス化できるのに対し、
内部クラスはネストしているクラスのインスタンスが存在しなければインスタンス化できない。
以下の例で、NestedクラスはNestedをネストしているOuterクラスのインスタンスなしにインスタンス化している。
InnerクラスはInnerクラスをネストしているOuterクラスのインスタンスからインスタンス化している。
UseInner.java
public class UseInner {
public static void main(String[] args){
Outer outer = new Outer();
Outer.Nested nested = new Outer.Nested();
Outer.Inner inner = outer.new Inner();
}
}
Outer.java
public class Outer{
public class Inner {
}
public static class Nested {
}
}
最終更新:2006年09月14日 11:08