Sobes.tech
Middle

Ішкі кластар дегеніміз не?

sobes.tech AI

AI-дан жауап

Ішкі класс — бұл басқа класс ішінде анықталған класс.

Java-да ішкі кластардың түрлері:

  • Статикалық ішкі кластар (Static Nested Classes):

    • Сыртқы кластың экземплярынсыз қол жетімді.
    • Сыртқы кластың статикалық емес өрістеріне және әдістеріне тікелей қол жеткізе алмайды.
    • static кілттік сөзімен жарияланады.
  • Ішкі кластар (Inner Classes):

    • Мүшелік ішкі кластар (Member Inner Classes):
      • Сыртқы кластың мүшелері деңгейінде жарияланады.
      • Барлық сыртқы кластың мүшелеріне (оның ішінде жеке мүшелеріне де) қол жеткізе алады.
      • Өз экземплярын жасау үшін сыртқы кластың экземпляры қажет.
    • Жергілікті ішкі кластар (Local Inner Classes):
      • Әдіс, конструктор немесе инициализация блогы ішінде анықталады.
      • Бұл әдіс/блок шегінде ғана көрінеді.
      • Сыртқы контексттің final немесе тиімді final локальды айнымалыларына қол жеткізеді.
    • Анонимді ішкі кластар (Anonymous Inner Classes):
      • Аты жоқ кластар.
      • Интерфейсті немесе класты бірден жүзеге асыратын объектілер жасау үшін қолданылады.
      • Бір операцияда анықталып, инстанцирленеді.

Статикалық ішкі кластың мысалы:

class OuterClass {
    private static String msg = "Hello from Outer";

    static class StaticNestedClass {
        public void display() {
            // Сыртқы кластың статикалық мүшелеріне қол жеткізе алады
            System.out.println(msg);
        }
    }
}
// Қолдану
// OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();
// nestedObject.display();

Мүшелік ішкі кластың мысалы:

class OuterClass {
    private String msg = "Hello from Outer";

    class InnerClass {
        public void display() {
            // Барлық сыртқы кластың мүшелеріне қол жеткізе алады
            System.out.println(msg);
        }
    }
}
// Қолдану
// OuterClass outerObject = new OuterClass();
// OuterClass.InnerClass innerObject = outerObject.new InnerClass();
// innerObject.display();

Ішкі кластарды қолданудың артықшылықтары:

  • Топтастыру: Логикалық байланысты кластар топтастырылуы мүмкін.
  • Инкапсуляция: Ішкі кластар сыртқы кластың жеке мүшелеріне қол жеткізе алады, бұл жақсы инкапсуляцияны қамтамасыз етеді.
  • Оқылымдылық пен қолдау: Қосалқы кластар негізгі кластың ішінде жасырын тұрады.
  • Тиімділік: Көбірек ықшам және тиімді деректер құрылымдарын жасау үшін қолданылуы мүмкін.