2013-03-22 14 views
5

Mam klasę zewnętrzną. Posiadam również prywatną klasę wewnętrzną, która rozszerza JPanel. To jest projekt kodu.java inner classes method access

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(); 
    } 
} 

Nie mogę uzyskać dostępu do metody doSomeWork() klasy wewnętrznej z klasy zewnętrznej. Proszę pomóż.

+1

Co to znaczy, że nie może uzyskać dostępu do metody? Czy widzisz komunikat o błędzie kompilatora? Jeśli tak, opublikuj go tutaj w swoim pytaniu. –

+3

[To kompiluje się dobrze] (http://ideone.com/G9SCSB). – dasblinkenlight

+2

Zewnętrzna zewnętrzna = nowa zewnętrzna(); Zewnętrzna. Wewnętrzna wewnętrzna = zewnętrzna.nowa Wewnętrzna(); inner.doSomeWork(); – chuthan20

Odpowiedz

12

Oto jak zrobić przedmiot wewnętrzny i dostęp do jego zmiennych ...

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

Example code from Oracle is here...

+0

Ten kod nie działa, klasa wewnętrzna jest prywatna, więc żaden kod klienta nie będzie mógł uzyskać do niej dostępu. Ale nie sądzę, że jest to pytanie OP, ponieważ wydaje się, że stara się uzyskać dostęp do wewnętrznej klasy z zewnętrznej klasy, a nie zewnętrznie. – jedyobidan

+0

Jak możesz to powiedzieć? Próbowałem po prostu usunięcie JPanel działa dobrze. –