2012-05-14 12 views
-2

私はMyClass mc=new MyClass();を持っています、私はサブクラスにアクセスする必要があります:mc.Sub.Check()サブクラスのオブジェクトを作成します

https://stackoverflow.com/a/488749/1234275 - この場合は動作しません。

public class MyClass { 
    public onCreate() { 
    super(); 
    } 
    Public class Sub { 
    public void Check() { 
     // 
    } 
    } 
} 
+0

あなたは内部クラスを持っています。リンクはありません。 – keyser

+0

@Keyser "この場合"。 –

+0

私が言っていることは、関連する質問ではないということです。 – keyser

答えて

0

通常クラスのように、InnerクラスのObjectを作成するだけで済みます。上記の場合、あなたは次のようにすることができます。

Sub sub = new Sub();

sub.check();

上記のコードを入れてくださいonCreate();

希望すると、これが役立ちます。

+0

解決済み:MyClass.Sub a = new MyClass.Sub();.私はonClreate()では実際には必要ありません。なぜならMyClassは大きく、Subをほとんど使用しないからです。しかしそれはあまりにも機能し、受け入れます。 –

0

他のクラスと同様に内部クラスを開始することができます。つまり、new MyClass.Subです。メソッドを呼び出します。開始をスキップする場合は、ネストされたクラスを静的として宣言する必要があります。

(非静的な内部クラスのインスタンスは、そのクラスを含むインスタンスのコンテキスト内にのみ存在できます)。

0

のみ静的メソッドは、クラス名で呼ばれ、どちらかは、静的メソッドまたはは、内側外側のクラスのクラスとインスタンスを持つすべてのメソッドのインスタンスを作成しますされています。

関連する問題