2013-03-22 12 views
5

私は外部クラスを持っています。 JPanelを拡張するプライベート内部クラスもあります。これがコードの設計です。Java内部クラスメソッドアクセス

public class Outer{ 
    private class Inner extends JPanel{ 
     public void doSomeWork(){} 
    } 

    public Outer(){ 
     Inner inner = new Inner(); 
     inner.doSomeWork(); 
    } 

    public static void main(String args[]){ 
     Outer outer = new Outer(); 
    } 
} 

外部クラスの内部クラスのdoSomeWork()メソッドにアクセスできません。助けてください。ここで

+1

...あなたは、内側のオブジェクトを作成し、その変数にアクセスする方法ですか?コンパイラのエラーメッセージが表示されますか?もしそうなら、あなたの質問にここに投稿してください。 –

+3

[これはうまくコンパイルできます](http://ideone.com/G9SCSB)。 – dasblinkenlight

+2

アウターアウター= newアウター(); Outer.Inner inner = outer.new Inner(); inner.doSomeWork(); – chuthan20

答えて

12

はあなたがメソッドにアクセスすることはできませんどのような意味ですか

Outer outer = new Outer(); 
Outer.Inner inner = outer.new Inner(); 
inner.doSomeWork(); 

Example code from Oracle is here...

+0

このコードは機能しません。内部クラスはプライベートなので、クライアントコードはアクセスできません。しかし、私は外部からではなく、外部クラスから内部クラスにアクセスしようとしているように、これはOPの質問ではないと思います。 – jedyobidan

+0

どのようにこれを言うことができますか? JPanelを削除するだけでうまくいきました。 –

関連する問題