Metodlar Modifikatori

All lectures for UZ purposes
Daraja, Dars
Mavjud

1. Kirish Modifikatorlari

Har bir metod oldida dasturchi kirish modifikatorlarini belgilashi mumkin. Ularga quyidagi kalit so'zlar kiradi: public, protected, private.

Bu "kirish modifikatorlari" usulning boshqa sinflardan foydalanish imkoniyatini cheklash imkonini beradi.

Misol uchun, agar metod e'lon qilishdan oldin private kalit so'zini yozilsa, u holda ushbu metod faqat o'sha sinf ichida chaqirilishi mumkin. public kalit so'zi esa istalgan sinfning istalgan metodidan foydalanishga ruxsat beradi.

Umuman 3 turdagi modifikator mavjud, lekin 4 xil kirish turi bor, chunki kirish modifikatorining yo'qligi ham biror ma'noni anglatadi.

...dan kirish
Modifikatorlar Istalgan sinf Meros olingan sinf O'z paketida O'z sinfi
public Bor Bor Bor Bor
protected Yo'q Bor Bor Bor
modifikatorsiz Yo'q Yo'q Bor Bor
private Yo'q Yo'q Yo'q Bor

1. public modifikatori.

Modifikator public bilan belgilangan usulga (o'zgaruvchi yoki sinf) dasturdan istalgan joydan murojaat qilish mumkin. Bu eng ochiq daraja, hech qanday cheklov yo'q.

2. private modifikatori.

Modifikator private bilan belgilangan usulga (o'zgaruvchi yoki sinf) faqat o'sha sinfning ichidan murojaat qilish mumkin. Boshqa barcha sinflar uchun bu usul (yoki o'zgaruvchi) ko'rinmas va "go'yo mavjud emas". Bu eng yopiq daraja - faqat o'z sinfi.

3. Modifikatorsiz (standart modifikator).

Hech qanday modifikator bilan belgilanmagan usul (yoki o'zgaruvchi) "standart modifikator" bilan belgilangan hisoblanadi. Ushbu modifikator bilan belgilanmagan o'zgaruvchilar yoki usullar esa o'z paketidagi barcha sinflar uchun ko'rinadi. Shu bilan cheklanadi. Bu modifikatorni ba'zida package deb ham atashadi, chunki u o'z paketi ichidagi sinflarga foydalanish imkonini beradi.

4. protected modifikatori.

Agar usul protected modifikatori bilan belgilangan bo'lsa, unga o'sha sinf, o'sha paket va meros olingan sinflardan murojaat qilish mumkin (usul e'lon qilingan sinfdan meros olgan sinflar). Bu mavzuni batafsil Java Core kvestida ko'rib chiqamiz.

Java Syntax kvestining oxirigacha siz barcha usullaringizga (shuningdek sinf va sinf o'zgaruvchilariga) public modifikatorini qo'yishingiz mumkin. Boshqa modifikatorlar sizga OOP'ni aktiv o'rganishni boshlaganimizda kerak bo'ladi.

Kirish modifikatorlari nima uchun kerak?

Hammasi bir vaqtning o'zida o'nlab va yuzlab dasturchilar tomonidan yozilgan katta loyihalarda.

Ba'zida, dasturchi o'z sinfining juda katta bo'lib ketgan metodini qismlarga ajratmoqchi bo'ladi va kodning bir qismini yordamchi metodlarga chiqaradi. Lekin boshqa dasturchilar bu yordamchi metodlarni chaqirishini xohlamaydi, chunki o'sha holda uning sinfi noto'g'ri ishlashi mumkin.

Mana shunday kirish modifikatorlari o'ylab topilgan. Yordamchi metodni private so'zi bilan belgilang, va sizning sinfingizdan boshqa hech qanday kod yordamchi metodni ko'ra olmaydi.



2. static kalit so'zi

static kalit so'zi metodni statik holga keltiradi. Bu nima, keyinroq ko'ramiz, hozircha statik metodlar haqida bir qancha faktlarni eslab qolamiz.

Fakt 1. Statik metod hech qanday obyektga bog'liq emas, lekin u e'lon qilingan sinfga tegishli. Statik metodni chaqirish uchun quyidagicha yozish kerak:

SinfNomi.metodNomi()

Statik metodlar misollari:

Sinf nomi Statik metod nomi
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Sinf nomini statik metod nomi oldida yozish shart emas, agar siz statik metodni ichkaridan - o'sha sinf ichidan chaqirsangiz. Aynan shu sababli Solutionni har safar chaqirilayotgan statik metodlar nomidan oldin yozishingiz shart emas.

Fakt 2. Statik metod o'z sinfining nestatik metodlariga murojaat qila olmaydi. Statik metod faqat boshqa statik metodlarga murojaat qila oladi. Shuning uchun, biz main metodidan chaqiriladigan barcha metodlarni statik deb e'lon qilamiz.

Nima uchun? Siz bunaqa savolga o'zingiz javob bera olasiz, ob'ektga yo'naltirilgan dasturlashni o'rganishni boshlaganingizda va statik metodlar qanday tuzilganini tushunib olganingizda.



3. throws kalit so'zi

Yana bir kalit so'z bor, ehtimol siz uni metod e'lon qilishda ko'rgansiz - bu throws so'zi. Bu, kirish modifikatorlari va static kalit so'zidan farqli o'laroq, metod parametrlaridan keyin joylashgan:

public static tur nom(parametrlar) throws Exception
{
   metod kodi
}

Bu aynan qanday ma'noga ega, biz keyinchalik istisnolarni o'rganishda ko'rib chiqamiz.

Lekin agar bu mavzuga yuzaki e'tibor qaratsak, aytish mumkinki, throws so'zi bilan belgilangan metodda Exception (va undan meros olgan sinflar) turidagi xatoliklar (istisnolar) paydo bo'lishi mumkin. Agar klassda bir nechta turdagi xatoliklar paydo bo'lishi mumkin bo'lsa, barcha turlarni vergul bilan ajratib yozish kerak.


4. main metod

Metod e'lon qilish satri, barcha modifikatorlar bilan, bu metod boshqa sinflar va metodlardan qanday chaqirilishini, qanday natijani qaytarishini va uning ishlashida qanday xatoliklar mumkinligini belgilaydi.

Bunday satr metod e'lon qilish deb ataladi va umumiy ko'rinishi quyidagicha:

kirish modifikatorlari static tur nom(parametrlar) throws istisnolar
Metod e'lon qilishning umumiy ko'rinishi

Bu yerda kirish modifikatorlari - public, protected, private yoki hech narsa;

static statik metodlar uchun qo'yiladi (nestatik metodlar uchun yo'q)

tur - funktsiya natijasining turi (void, agar natija yo'q bo'lsa)

Endi, ehtimol, siz main metodini e'lon qilishda barcha kalit so'zlar nimani anglatishini tushunasiz:

public static void main(String[] args) throws Exception
main metodini e'lon qilish

main() metodiga istalgan sinfdan kirish mumkin, bu haqida public so'zi aytmoqda.

Metod statik (unga Solution.main() ko'rinishida aniq murojaat qilish mumkin).

void - natija turi (bo'sh tur / ajratma)

main metodiga parametrlar(!) qabul qiladi: qatorlar massivini. args nomi "dastur argumentlari"ga ishora qiladi. Dastur ishga tushirilganda, unga parametrlar - qatorlar massivini uzatish mumkin. Ular args massivida bo'ladi main() metodida.

main() metodida Exception turidagi (yoki uning merosxo'rlari) qayta ishlanmagan xatoliklar paydo bo'lishi mumkin.


Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION