JavaRush /Java-Blog /Random-DE /Level 23. Antworten auf Interviewfragen zum Levelthema
zor07
Level 31
Санкт-Петербург

Level 23. Antworten auf Interviewfragen zum Levelthema

Veröffentlicht in der Gruppe Random-DE
Stufe 23. Antworten auf Interviewfragen zum Thema Stufe - 1
  1. Was sind die inneren Klassen?

    • Verschachtelte Klassen werden in zwei Typen unterteilt: statisch und nicht statisch.
    • Als statisch deklarierte verschachtelte Klassen werden als statisch verschachtelte Klassen bezeichnet.
    • Verschachtelte nicht statische Klassen werden als innere Klassen bezeichnet.
  2. Wozu kompiliert eine anonyme innere Klasse?

    Zu einer inneren nicht statischen Klasse

  3. Warum Schlüsselwörter finalbeim Erstellen anonymer Klassen verwenden?

    Wenn eine anonyme innere Klasse definiert ist und diese Objekte verwenden muss, die außerhalb dieser inneren Klasse definiert sind, verlangt der Compiler, dass die an sie übergebenen Referenzen als unveränderlich (endgültig) deklariert werden. Ohne eine solche Deklaration erhalten Sie beim Kompilieren des Programms eine Fehlermeldung.

  4. Wie erstellt man ein inneres Klassenobjekt richtig?

    Innere (nicht statische) Klassen sind wie Variablen und Methoden einem Objekt der äußeren Klasse zugeordnet. Auch innere Klassen haben direkten Zugriff auf die Felder der äußeren Klasse. Solche Klassen können keine statischen Methoden und Felder enthalten. Innere Klassen können nicht ohne eine Instanz der äußeren existieren. So erstellen Sie ein Objekt:

    Outer outer = new Outer();
    Innter inner = outer.new Inner();
  5. Wie erstelle ich ein Objekt einer verschachtelten Klasse richtig?

    Die Syntax zum Erstellen eines verschachtelten Klassenobjekts lautet:

    OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
  6. Ist es möglich, statische Methoden/Variablen in einer inneren Klasse zu erstellen?

    Statische Methoden/Variablen können nicht in einer internen Klasse deklariert werden (nicht in einer verschachtelten).

    Innere (nicht statische) Klassen sind wie Variablen und Methoden einem Objekt der äußeren Klasse zugeordnet. Solche Klassen können keine statischen Methoden und Felder enthalten.

  7. Nennen Sie drei innere Klassen?

    1. private static class Holder– verschachtelte Klasse HashMapaus java.util.
    2. Die Schnittstelle Mapverfügt über , die wiederum in einer anderen verschachtelten Klasse interface Entry<K,V>liegt und in dieser implementiert ist .HashMapstatic class Entry<K,V> implements Map.Entry<K,V>
    3. private static class IntegerCacheim Unterricht Integer.
  8. Wie lösen innere Klassen das Problem der Mehrfachvererbung in Java?

    Weil Die Mehrfachvererbung von Klassen ist in Java verboten; dieses Problem wird mit Hilfe interner Klassen gelöst: In der von uns benötigten Klasse deklarieren wir eine interne Klasse und erben sie von der benötigten Klasse. Beispiel:

    class Tiger extends Cat
    {
    
     public void tigerRun()
     {
      .....
     }
    
    public void startTiger()
     {
      TigerThread thread = new TigerThread();
      thread.start();
     }
    
     class TigerThread extends Thread
     {
      public void run()
      {
       tigerRun();
      }
     }
    }
  9. Was ist der Unterschied zwischen schnittstellenbasierten und klassenbasierten anonymen Klassen?

    Eine anonyme Klasse gemäß JLS 15.9.5 ist ein Ausdruck, in dem die Deklaration einer neuen Klasse und deren Initialisierung kombiniert werden:

    • Beim Deklarieren einer Klasse wird eine neue Klasse erstellt, die von der angegebenen Klasse abgeleitet ist, wenn sie als Basis einer anderen Klasse verwendet wird, oder die Schnittstelle implementiert, wenn sie als Basis einer Schnittstelle verwendet wird.
    • Bei der Initialisierung wird ein neues Objekt erstellt und eine Referenz darauf zurückgegeben: Die anonyme Klasse ist konkret.

    Daher besteht der einzige Unterschied zwischen schnittstellenbasierten und klassenbasierten anonymen Klassen in der Anzahl der abstrakten Methoden, die implementiert werden müssen.

    Инициализации анонимного класса на основе интерфейса потребует реализации каждого метода, в то время Wie при инициализации анонимного класса на основе абстрактного/конкретного класса позволит изменить поведение за счет перегрузки методов и потребует реализации абстракных методов.

  10. Можно ли создать анонимный статический вложенный класс?

    Нет, статической становится только переменная, но не класс.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION