JavaRush /Java блогы /Random-KK /Деңгей 23. Деңгейлік тақырып бойынша сұхбат сұрақтарына ж...
zor07
Деңгей
Санкт-Петербург

Деңгей 23. Деңгейлік тақырып бойынша сұхбат сұрақтарына жауаптар

Топта жарияланған
23-деңгей. Деңгей тақырыбы бойынша сұхбат сұрақтарына жауаптар – 1
  1. Ішкі сыныптар қандай?

    • Кірістірілген сыныптар екі түрге бөлінеді: статикалық және статикалық емес.
    • Статикалық деп жарияланған кірістірілген сыныптар статикалық кірістірілген сыныптар деп аталады.
    • Кірістірілген статикалық емес сыныптар ішкі класстар деп аталады.
  2. Анонимді ішкі класс нені құрастырады?

    Ішкі статикалық емес сыныпқа

  3. Неліктен finalанонимді сыныптарды жасау кезінде кілт сөзді пайдалану керек?

    Егер анонимді ішкі класс анықталса және оған осы ішкі сыныптан тыс анықталған нысандарды пайдалану қажет болса, компилятор оларға берілген сілтемелердің өзгермейтін (соңғы) деп жариялануын талап етеді. Мұндай мәлімдеме болмаса, сіз бағдарламаны құрастыру кезінде қате аласыз.

  4. Ішкі сынып an objectісін қалай дұрыс құруға болады?

    Ішкі (статикалық емес) сыныптар, айнымалылар мен әдістер сияқты, сыртқы сыныптың an objectісімен байланысты. Ішкі сыныптар да сыртқы сыныптың өрістеріне тікелей қол жеткізе алады. Мұндай сыныптарда статикалық әдістер мен өрістер болуы мүмкін емес. Ішкі сыныптар сыртқы бір данасынсыз өмір сүре алмайды. Объектіні жасау үшін:

    Outer outer = new Outer();
    Innter inner = outer.new Inner();
  5. Кірістірілген класс an objectісін қалай дұрыс құруға болады?

    Кірістірілген сынып нысанын құру синтаксисі:

    OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
  6. Ішкі сыныпта статикалық әдістерді/айнымалы мәндерді жасауға болады ма?

    Статикалық әдістерді/айнымалыларды ішкі сыныпта жариялау мүмкін емес (кіріс емес).

    Ішкі (статикалық емес) сыныптар, айнымалылар мен әдістер сияқты, сыртқы сыныптың an objectісімен байланысты. Мұндай сыныптарда статикалық әдістер мен өрістер болуы мүмкін емес.

  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