Klasy wewnętrne

bartek164
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 534
0

Powie mi ktoś dlaczego to nie działa?

Kopiuj
package api;

public class Anonimous 
{
     public class Inside
    {
        public Inside()
        {
            System.out.println("Inside");
        }
    }
    public Anonimous()
    {
        System.out.println("Anonimous");
    }
  
   
}
class MainProgram
{
 public static void main()
    {
        Anonimous obj = new Anonimous();
        Anonimous.Inside obj2 = new Inside(); //nie mozna znalezc inside
    }
}
CountZero
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 263
2

No bo klasa wewnętrzna potrzebuje instancji klasy do której "należy".

Kopiuj
public class ExceptionsTraining {

    public static void main(String[] args) throws Exception {
        Anonimous obj = new Anonimous();
        Anonimous.Inside obj2 = obj.new Inside();       
    }
    
}

Jak chcesz mieć klasę wewnętrzna która nie jest powiązana z konkretną instancją klasy w której się znajduje, możesz ją zadeklarować jako statyczną.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.