JavaRush /Java Blog /Random-KO /레벨 23. 레벨 주제에 대한 인터뷰 질문에 대한 답변
zor07
레벨 31
Санкт-Петербург

레벨 23. 레벨 주제에 대한 인터뷰 질문에 대한 답변

Random-KO 그룹에 게시되었습니다
레벨 23. 레벨-1 주제에 관한 인터뷰 질문에 대한 답변
  1. 내부 클래스는 무엇입니까?

    • 중첩 클래스는 정적 클래스와 비정적 클래스의 두 가지 유형으로 나뉩니다.
    • static으로 선언된 중첩 클래스를 정적 ​​중첩 클래스라고 합니다.
    • 중첩된 비정적 클래스를 내부 클래스라고 합니다.
  2. 익명의 내부 클래스는 무엇으로 컴파일됩니까?

    내부 비정적 클래스로

  3. final익명 클래스를 만들 때 키워드를 사용하는 이유는 무엇입니까 ?

    익명 내부 클래스가 정의되어 있고 이 내부 클래스 외부에 정의된 객체를 사용해야 하는 경우 컴파일러는 전달된 참조가 불변(최종)으로 선언되도록 요구합니다. 이러한 선언이 없으면 프로그램을 컴파일할 때 오류가 발생합니다.

  4. 내부 클래스 객체를 올바르게 생성하는 방법은 무엇입니까?

    변수 및 메서드와 같은 내부(비정적) 클래스는 외부 클래스의 개체와 연결됩니다. 내부 클래스도 외부 클래스의 필드에 직접 액세스할 수 있습니다. 이러한 클래스에는 정적 메서드와 필드가 포함될 수 없습니다. 내부 클래스는 외부 클래스의 인스턴스 없이는 존재할 수 없습니다. 객체를 생성하려면:

    Outer outer = new Outer();
    Innter inner = outer.new Inner();
  5. 중첩 클래스의 객체를 올바르게 생성하는 방법은 무엇입니까?

    중첩 클래스 객체를 생성하는 구문은 다음과 같습니다.

    OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
  6. 내부 클래스에 정적 메서드/변수를 만드는 것이 가능합니까?

    정적 메서드/변수는 내부 클래스(중첩 클래스 아님)에서 선언할 수 없습니다.

    변수 및 메서드와 같은 내부(비정적) 클래스는 외부 클래스의 개체와 연결됩니다. 이러한 클래스에는 정적 메서드와 필드가 포함될 수 없습니다.

  7. 세 가지 내부 클래스를 말해주세요.

    1. private static class HolderHashMap— 의 중첩 클래스 java.util.
    2. 인터페이스 에는 Map가 있으며 interface Entry<K,V>이는 HashMap또 다른 중첩 클래스에 구현되어 있습니다 static class Entry<K,V> implements Map.Entry<K,V>.
    3. private static class IntegerCache클래스 Integer.
  8. 내부 클래스는 Java의 다중 상속 문제를 어떻게 해결합니까?

    왜냐하면 Java에서는 클래스의 다중 상속이 금지됩니다. 이 문제는 내부 클래스의 도움으로 해결됩니다. 필요한 클래스에서 내부 클래스를 선언하고 필요한 클래스에서 상속합니다. 예:

    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. 인터페이스 기반 익명 클래스와 클래스 기반 익명 클래스의 차이점은 무엇입니까?

    JLS 15.9.5에 따른 익명 클래스는 새 클래스의 선언과 초기화가 결합된 표현식입니다.

    • 클래스를 선언하면 다른 클래스의 기본으로 사용될 때 지정된 클래스에서 파생되거나 인터페이스의 기본으로 사용될 때 인터페이스를 구현하는 새 클래스가 생성됩니다.
    • 초기화 중에 새 객체가 생성되고 해당 객체에 대한 참조가 반환됩니다. 익명 클래스는 구체적입니다.

    따라서 인터페이스 기반 익명 클래스와 클래스 기반 익명 클래스의 유일한 차이점은 구현해야 하는 추상 메서드의 수입니다.

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

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

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

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION