Junior
Ичке класстар деген эмне?
sobes.tech AI
AIден жооп
Ичке класстар (Nested Classes) — башка класс ичинде аныкталган классылар. Алар эки негизги түргө бөлүнөт:
-
Статикалык ички класстар (Static Nested Classes): Тышкы класстын статикалык мүчөлөрүнө окшош. Алар түздөн-түз тышкы класстын статикалык эмес мүчөлөрүнө жетпейт. Тышкы класстын экземплярынсыз түзүлөт.
Javaда мисал:
class OuterClass { static int outerStaticField; int outerInstanceField; static class StaticNestedClass { void accessOuterStatic() { // OuterClassтын статикалык мүчөсүнө жетүү int value = OuterClass.outerStaticField; } // outerInstanceFieldке түз жетүү мүмкүн эмес // void accessOuterInstance() { // int value = outerInstanceField; // Компиляция ката // } } } -
Ички класстар (Inner Classes): Нестатикалык. Бардык тышкы класстын мүчөлөрүнө, анын ичинде статикалык жана нестатикалык, ошондой эле жеке мүчөлөргө да жетет. Ички класстын экземпляры тышкы класстын экземплярына байланыштуу. Экземплярды түзүү үчүн тышкы класстын экземплярын колдонуш керек.
Javaда мисал:
class OuterClass { static int outerStaticField; int outerInstanceField; class InnerClass { void accessOuterMembers() { // OuterClassтын статикалык жана нестатикалык мүчөлөрүнө жетүү int staticValue = OuterClass.outerStaticField; int instanceValue = outerInstanceField; } } }
Кошумча атайын түрлөрү:
- Жергиликтүү класстар (Local Classes): Методу, конструктору же инициализациялык блоктун ичинде аныкталган. Бул блоктун ичинде гана колдонулат.
- Анонимдүү класстар (Anonymous Classes): Аты жок. Интерфейс же класс кеңейтүүнүн бир жолку ишке ашырылышын түзүү үчүн колдонулат. Бир эле учурда аныкталып, түзүлөт.
Ички класстардын артыкчылыктары:
- Логикалык топтоо: Логикалык жактан байланышкан класстарды топтоого мүмкүндүк берет, коддун окумдуулугун жогорулатат.
- Инкапсуляция: Жеке мүчөлөргө жетүүгө мүмкүндүк берет, күчөтөт.
- Кодду жөнөкөйлөтүү: Бир эле башка класс үчүн колдонулган класстарды жазууну жеңилдетет.
QA автоматташтыруу колдонмолорунда:
- Page Object Model: Ички же статикалык ички класстар беттин элементтерин уюштурууда колдонулушу мүмкүн (мисалы, бөлүмдөр, модалдык терезелер) негизги Page Object классынын ичинде.
- Окуя иштетүүчүлөр / Callback-дар: Анонимдүү же жергиликтүү класстар тесттерди ишке ашырууда колдонулушу мүмкүн, callback-дар же окуя иштетүүчүлөр аркылуу, мисалы, UI элементтери менен иштөөдө же тыңдоочуларды колдонууда.
- Конфигурациялык класстар: Статикалык ички класстар константтарды же конфигурациялык параметрлерди камтышы мүмкүн, алар тышкы класска тиешелүү.