JavaRush /وبلاگ جاوا /Random-FA /سطح 23. پاسخ به سؤالات مصاحبه در مورد موضوع سطح
zor07
مرحله
Санкт-Петербург

سطح 23. پاسخ به سؤالات مصاحبه در مورد موضوع سطح

در گروه منتشر شد
سطح 23. پاسخ به سوالات مصاحبه با موضوع سطح - 1
  1. طبقات داخلی کدامند؟

    • کلاس های تو در تو به دو نوع استاتیک و غیر استاتیک تقسیم می شوند.
    • کلاس های تودرتو که به عنوان استاتیک اعلام می شوند، کلاس های تودرتو ایستا نامیده می شوند.
    • کلاس های غیر استاتیک تو در تو کلاس های داخلی نامیده می شوند.
  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 Holder-کلاس تودرتو HashMapاز 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. چگونه کلاس های داخلی مشکل وراثت چندگانه در جاوا را حل می کنند؟

    زیرا ارث بردن چندگانه کلاس ها در جاوا ممنوع است، این مشکل با کمک کلاس های داخلی حل می شود: در کلاسی که نیاز داریم، یک کلاس داخلی اعلام می کنیم و آن را از کلاس مورد نیاز به ارث می بریم. مثال:

    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