1. Mahalliy o'zgaruvchilar
O'zgaruvchilar haqida jiddiyroq gaplashaylik. Ammo bu safar ularning ichki tuzilmasini emas, balki kod bilan o'zaro ta'sirini muhokama qilamiz.
Metod ichida e'lon qilingan barcha o'zgaruvchilar mahalliy o'zgaruvchilar deb ataladi. Mahalliy o'zgaruvchi faqat e'lon qilingan kod blokida mavjud bo'ladi. Yoki aniqroq aytganda, e'lon qilingan vaqtdan boshlab, kod bloki tugaguncha mavjud bo'ladi.
Oddiy qilib tushunish uchun misol keltiraylik:
| Kod | O'zgaruvchilar ko'rinishi |
|---|---|
|
|
Mahalliy o'zgaruvchilar ko'rinishini yana bir bor muhokama qilaylik. Mana, joriy kod bloki mavjud: bu metoda, tsiklga yoki shartli operator kod blokiga tegishi mumkin. Kod blokida e'lon qilingan o'zgaruvchi shu kod bloki tugaguncha mavjud bo'ladi.
Agar o'zgaruvchi tsikl tanasida e'lon qilinsa, u faqat tsikl tanasida mavjud bo'ladi. Tsikl har bir aylanishida yaratiladi va yo'q bo'ladi.
Misol:
| Kod | O'zgaruvchilar ko'rinishi |
|---|---|
|
|
Ikkinchi b mahalliy o'zgaruvchini e'lon qila oldik, chunki birinchi b o'zgaruvchisi, ikkinchi b o'zgaruvchisi e'lon qilingan kod blokida ko'rinmaydi.
2. Parametr o'zgaruvchilari
Ko'rib o'tganimizdek, har bir metodning parametr o'zgaruvchilari bo'lishi mumkin. Ulardan ko'rinish va yashash muddati haqida nima deyish mumkin?
Bu juda oson. Parametr o'zgaruvchilar metod ishga tushirilganda yaratiladi va metod tugashi bilan yo'q qilinadi. Ular metod tanasining barcha joyida mavjud.
Misol:
| Kod | O'zgaruvchilar ko'rinishi |
|---|---|
|
|
Boshida aytganimizdek, args — bu shunchaki string array turi. Va boshqa parametr o'zgaruvchilar kabi, u metod tanasida har joyda ko'rinadi. Garchi biz misollarda uni e'tiborsiz qoldirib ketgan bo'lsak ham.
3. Klass o'zgaruvchilari
1-darslaridan eslayotganingizdek, klass funksiyalar va o'zgaruvchilarni o'z ichiga olishi mumkin. Shu bilan birga, funksiyalar odatda «klass metodlari», o'zgaruvchilar esa «klass o'zgaruvchilari» yoki «klass maydonlari» deb ataladi. Aslida, Java doirasida bu sinonimlar.
Xo'sh, klass o'zgaruvchilari (yoki maydonlari) nima?
Klass o'zgaruvchilari — bu metodda emas, klassda e'lon qilingan o'zgaruvchilar.
Klassdagi har qanday metoddan ularga murojaat qilish mumkin. Qisqacha aytganda klass o'zgaruvchilari — bu klassning barcha metodlari uchun umumiy o'zgaruvchilar.
Misol:
| Kod | O'zgaruvchilar ko'rinishi |
|---|---|
|
|
Bu misolda bizda ikki metod mavjud — add() va remove(). add() metodi sum va count klass o'zgaruvchilarini oshiradi, remove() metodi esa sum va count o'zgaruvchilarini kamaytiradi. Har ikkala metod ham klassning umumiy o'zgaruvchilari bilan ishlaydi.
Mahalliy o'zgaruvchilar metod ishga tushirilganda mavjud bo'ladi. Klass o'zgaruvchilari esa o'zlariga tegishli klass obyekti mavjud bo'lgan vaqt davomida mavjud bo'ladi. Bu haqda klass obyektlari haqida navbatdagi darajada ko'proq ma'lumot olasiz.
4. Statik o'zgaruvchilar
Klass o'zgaruvchilari ham statik, ham nostatik (oddiy) bo'lishi mumkin. Statik metodlar faqat statik o'zgaruvchilarga murojaat qilishlari mumkin.
11-darsda statik o'zgaruvchilar va metodlar tuzilishini ko'rib chiqamiz va bunday cheklovlarning sabablarini tushunamiz.
Klass o'zgaruvchisini statik qilish uchun, e'lon qilishdan oldin static kalit so'zini yozish kerak.
Statik o'zgaruvchilar, ular e'lon qilingan klass obyektiga emas, balki to'g'ridan-to'g'ri klassning o'ziga bog'langan bo'ladi. Shuning uchun ular birorta ham klass turidagi obyekt yaratilmagan bo'lsa ham mavjud bo'ladi. Ular boshqa klasslardan quyidagi shaklda murojaat qilinishi mumkin:
ClassName.variableName
Misol:
| Kod | O'zgaruvchilar ko'rinishi |
|---|---|
|
|
Yuqorida keltirilgan misolda biz Storage nomli alohida klass yaratdik, count va sum o'zgaruvchilarni unga ko'chirdik va ularni statik deb e'lon qildik. Umumiy statik o'zgaruvchilarga dasturdagi har qanday metoddann (va nafaqat metoddan) murojaat qilish mumkin.
GO TO FULL VERSION