1. Локалдык өзгөрмөлөр
Өзгөрмөлөр жөнүндө бир аз олуттуу сүйлөшөлү. Бирок бул жолу алардын ички түзүлүшү эмес, өзгөрмөлөрдүн жайгашкан код менен өз ара аракеттенүүсүн талкуулайбыз.
Методдордун ичинде жарыяланган бардык өзгөрмөлөр локалдык өзгөрмөлөр деп аталат. Локалдык өзгөрмө ал жарыяланган коддун блокто гана жашайт. Же, так айтканда, жарыяланган учурдан баштап, ошол коддун блоктун аягына чейин жашайт.
Жөнөкөй мисал карап көрөлү:
Код | Өзгөрмөлөрдүн жеткиликтүүлүгү |
---|---|
|
|
Локалдык өзгөрмөлөрдүн жеткиликтүүлүгү тууралуу кайталап сүйлөшөлү. Бул жерде коддун блогу бар, ал фигурные скобками аяктайт: бул методдун денеси, циклдин денеси же шарттуу оператордун код блогу болушу мүмкүн. Код блокто жарыяланган өзгөрмө ошол код блоктун аягына чейин жашайт.
Эгер өзгөрмө циклдин денесинде жарыяланса, ал циклдин денесинде гана жашайт. Ар бир айлампада жаралып жана жок болот.
Мисал:
Код | Өзгөрмөлөрдүн жеткиликтүүлүгү |
---|---|
|
|
b
деген аталыштагы экинчи локалдык өзгөрмөнү биринчисинин b
өзгөрмөсү экинчи өзгөрмө b
жарыяланган код блоктун ичинде көрүнбөйт, ошондуктан жарыялай алдык.
2. Параметрлүү өзгөрмөлөр
Мурда айтылгандай, ар бир методдун параметрлүү өзгөрмөлөрү болушу мүмкүн. Алардын көрүнүшү жана өмүр талабычы?
Бул жерде баары оңой. Параметрлүү өзгөрмөлөр методдун коду иштей баштаганда жаралып, метод аяктагандан кийин жок болот. Алар методдун денесинде бар.
Мисал:
Код | Өзгөрмөлөрдүн жеткиликтүүлүгү |
---|---|
|
|
Мурда айткандай, args
— бул жон эле сап массивинин өзгөрмөсү. Жана бардык параметрлүү өзгөрмөлөр сыяктуу, ал методдун денесинде бардык жерде жеткиликтүү. Чынында, бул өзгөрмөнү мисалдарда байкабайбыз.
3. Класс өзгөрмөлөрү
Эсиңерде болсо, 1-деңгээлдеги лекциялардан, класс функциялар жана өзгөрмөлөрдү камтышы мүмкүн. Функциялар "класс методдору", ал эми өзгөрмөлөр "класс өзгөрмөлөрү" же "класс талаалары" деп аталат. Java алкагында булар синонимдер.
Класстын өзгөрмөлөрү (же талаалары) деген эмне?
Класстын өзгөрмөлөрү — бул методдордо эмес, класс блогу ичинде жарыяланган өзгөрмөлөр.
Класс методдорунан бул өзгөрмөлөргө кайрыла алабыз. Жалпылап айтканда класс өзгөрмөлөрү — бул класс методдорунун баарына жеткиликтүү жалпы өзгөрмөлөр.
Мисал:
Код | Өзгөрмөлөрдүн жеткиликтүүлүгү |
---|---|
|
|
Бул мисалда, бизде эки метод бар — add()
жана remove()
. add()
методу класстын өзгөрмөлөрүн sum
жана count
жогорулатат, ал эми remove()
методу sum
жана count
өзгөрмөлөрүн төмөндөтөт. Эки метод тең жалпы класстын өзгөрмөлөрү менен иштейт.
Локалдык өзгөрмөлөр метод аткарылып жатканда жашайт. Класс өзгөрмөлөрү болсо, алар таандык класс объектиси жашаганга чейин жашайт. Класс объекттери тууралуу көбүрөөк кийинки деңгээлде үйрөнө турган болосуңар.
4. Статикалык өзгөрмөлөр
Класс өзгөрмөлөр, ошондой эле класс методдору, статикалык жана статикалык эмес (кадимки) болуп бөлүнөт. Статикалык методдор статикалык өзгөрмөлөргө гана кайрыла алат.
11-деңгээлде статикалык өзгөрмөлөрдүн жана методдордун түзүлүшүн талдайбыз жана мындай чектөөлөрдүн себептерин түшүнөбүз.
Класстын өзгөрмөсүн статикалык кылуу үчүн, аны жарыялоо алдында static
ачкыч сөзүн жазуу керек.
Статикалык өзгөрмөлөр алар жарыяланган класстын объектине эмес, өзү класска байланган. Ошондуктан алар эч кандай класстын объектиси түзүлбөсө да бар болот. Аларга башка класстардан кайрылуу төмөнкүдөй түзүм аркылуу болот:
ClassName.variableName
Мисал:
Код | Өзгөрмөлөрдүн жеткиликтүүлүгү |
---|---|
|
|
Жогорудагы мисалда, биз Storage
деген өзүнчө класс түздүк, анан count
жана sum
өзгөрмөлөрүн ошол класска алып барып, аларды статикалык деп жарыяладык. Коомдук статикалык өзгөрмөлөргө программадагы каалаган методдон кайрыла аласыз (калгандары гана эмес, методдор да).
GO TO FULL VERSION