Бақылау сұрақтарға конспект: Мұрагерлік және полиморфизм


Super және this резервтелген сөздер



бет12/14
Дата25.05.2022
өлшемі56,39 Kb.
#35561
түріКонспект
1   ...   6   7   8   9   10   11   12   13   14
Super және this резервтелген сөздер.
Конструкторларда қол жеткізу үшін осы сақталған сөзді пайдалану өте жиі кездеседі атауларының көрінуі параметр тізіміндегі айнымалылар арқылы қайта анықталатын нысан өрістері конструктор. Бірақ конструкторларда оның тағы бір қолданылуы бар - кері айналдыру үшін бір конструктор нұсқасы басқа параметрлер тізімі бар екіншісіне. Еске түсіру мұндай опциялардың болуы конструктордың шамадан тыс жүктелуі деп аталады. Мысалы, бізге бастапқыда конструкторды Circle класында орнатыңыз, онда x, y және r өрістерінің мәндері орнатылады. кездейсоқ:
Circle(Graphics g, Color bgColor){
graphics=g;
this.bgColor=bgColor;
size=(int)Math.round(Math.random()*40);
}
Содан кейін конструктор, онда x және y өрістерінің мәндері кездейсоқ тағайындалады және өлшем мәні конструктор параметрлерінің тізімі арқылы орнатылады, оны келесідей жазуға болады:
Circle(Graphics g, Color bgColor, int r){
this(g, bgColor);
size=r;
}
Бұл сөзбен конструкторды шақыру осы шақырудың болуын талап етеді
шақырушы конструкторды іске асырудағы бірінші мәлімдеме.
C++ тілінен айырмашылығы, Java конструктор атын пайдалануға рұқсат бермейді,сынып атауынан өзгеше.


Инициализациялау блоктары.
Әдетте, күрделі нысандардың өрістерін инициализациялау үшін пайдаланыңыз конструкторлар. Бірақ Java-да олардан басқа, көптеген басқа тілдерден айырмашылығы программалау, классты инициализациялау блоктары және объектіні инициализациялау блоктары. Инициализация блоктары бар сыныптарды анықтауға арналған синтаксис
Келесі:
Модификаторы class ИмяКласса extends ИмяРодителя {
Задание полей;
static {
сыныпты инициализациялау блогының денесі
}
{
нысанды инициализациялау блогының денесі
}
Ішкі бағдарламаларды орнату – класс әдістері, объект әдістері,конструкторлар
}
Классты инициализациялау блоктары және нысанды инициализациялау блоктары болуы мүмкін бірнеше. Негізгі класстың инициализациясының блоктары болған кезде операторлардың орындалу реті
қолдану (негізгі әдісті қамтитын):
- деректер өрістерін инициализациялау және сыныпты инициализациялау блоктарын орындау (ретімен
сынып декларациясындағы жазбалар);
- негізгі әдіс;
- объектіні инициализациялау блоктарын орындау;
- класс конструкторының денесінің орындалуы.
Басқа сыныптар үшін тәртіп бірдей, бірақ негізгі әдісті шақырмай:
- деректер өрістерін инициализациялау және сыныпты инициализациялау блоктарын орындау (ретімен
сынып декларациясындағы жазбалар);
- негізгі әдіс;
- объектіні инициализациялау блоктарын орындау;
- класс конструкторының денесінің орындалуы.
Инициализация блоктарын немесе конструкторларды пайдалану жақсы ма? Жауап әрине анық емес: кейбір жағдайларда - конструкторлар бойынша, басқаларында - инициализация блоктары бойынша. Үшін
талап ететін жағдайларда класс айнымалыларына бастапқы мәндерді тағайындау күрделі алгоритмдер, тек статикалық инициализация блоктарын пайдалануға болады. Үшін жалпы жағдайда нысан өрістерін инициализациялау үшін конструкторларды қолданған дұрыс, бірақ егер
мұраға шақыру алдында кейбір инициализация кодын орындау қажет
конструкторда динамикалық инициализация блогын пайдалануға болады.




Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   14




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет