アットウィキロゴ

java

クラス宣言とアクセス修飾子


修飾子 自クラス パッケージ サブクラス その他
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