JavaRush /Blogue Java /Random-PT /Nível 23. Respostas às perguntas da entrevista sobre o tó...
zor07
Nível 31
Санкт-Петербург

Nível 23. Respostas às perguntas da entrevista sobre o tópico do nível

Publicado no grupo Random-PT
Nível 23. Respostas às perguntas da entrevista sobre o tema do nível - 1
  1. Quais são as classes internas?

    • As classes aninhadas são divididas em dois tipos: estáticas e não estáticas.
    • Classes aninhadas declaradas como estáticas são chamadas de classes aninhadas estáticas.
    • Classes não estáticas aninhadas são chamadas de classes internas.
  2. Para que uma classe interna anônima é compilada?

    Para uma classe interna não estática

  3. Por que usar palavras-chave finalao criar classes anônimas?

    Se uma classe interna anônima for definida e precisar usar objetos definidos fora dessa classe interna, o compilador exigirá que as referências passadas a eles sejam declaradas imutáveis ​​(finais). Sem tal declaração, você receberá um erro ao compilar o programa.

  4. Como criar corretamente um objeto de classe interna?

    Classes internas (não estáticas), como variáveis ​​e métodos, estão associadas a um objeto da classe externa. As classes internas também têm acesso direto aos campos da classe externa. Essas classes não podem conter métodos e campos estáticos. As classes internas não podem existir sem uma instância da classe externa. Para criar um objeto:

    Outer outer = new Outer();
    Innter inner = outer.new Inner();
  5. Como criar corretamente um objeto de uma classe aninhada?

    A sintaxe para criar um objeto de classe aninhado é:

    OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
  6. É possível criar métodos/variáveis ​​estáticos em uma classe interna?

    Métodos/variáveis ​​estáticos não podem ser declarados em uma classe interna (não aninhada).

    Classes internas (não estáticas), como variáveis ​​e métodos, estão associadas a um objeto da classe externa. Essas classes não podem conter métodos e campos estáticos.

  7. Cite quaisquer três classes internas?

    1. private static class Holder—classe aninhada HashMapde java.util.
    2. A interface Mappossui interface Entry<K,V>, que está novamente HashMape é implementada em outra classe aninhada static class Entry<K,V> implements Map.Entry<K,V>.
    3. private static class IntegerCacheem aula Integer.
  8. Como as classes internas resolvem o problema de herança múltipla em Java?

    Porque A herança múltipla de classes é proibida em Java, esse problema é resolvido com a ajuda de classes internas: na classe que precisamos, declaramos uma classe interna e a herdamos da classe necessária. Exemplo:

    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. Qual é a diferença entre classes anônimas baseadas em interface e classes anônimas baseadas em classe?

    Uma classe anônima de acordo com JLS 15.9.5 é uma expressão na qual a declaração de uma nova classe e sua inicialização são combinadas:

    • Ao declarar uma classe, será criada uma nova classe que deriva da classe especificada quando usada como base de outra classe, ou implementa a interface quando usada como base de uma interface.
    • Durante a inicialização, um novo objeto será criado e uma referência será retornada a ele: a classe anônima é concreta.

    Assim, a única diferença entre classes anônimas baseadas em interface e classes anônimas é o número de métodos abstratos que precisam ser implementados.

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

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

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

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION