CodeGym /Kurslar /Java SELF AZ /Metodların modifikatorları

Metodların modifikatorları

Java SELF AZ
Səviyyə , Dərs
Mövcuddur

1. Giriş modifikatorları

Hər bir metod əvvəlcədən müəyyən "giriş modifikatorları" ilə işarələnə bilər. Bunlar aşağıdakı açar sözlərdir: public, protected, private.

Bu "giriş modifikatorları" metodun digər siniflərdən girişini məhdudlaşdırmağa imkan verir.

Məsələn, əgər metodunu elan edərkən private açar sözünü yazsaq, bu metodu yalnız onun elan edildiyi sinifdən çağırmaq olar. public açar sözü isə metodun istənilən sinifin istənilən metodundan çağırılmasına icazə verir.

Cəmi 3 növ modifikator, amma metod girişinin 4 tipi mövcuddur, çünki giriş modifikatorunun olmaması da bir məna ifadə edir.

Giriş...
Modifikatorlar İstənilən sinifdən Varis sinifdən Öz paketindən Öz sinifindən
public Var Var Var Var
protected Yox Var Var Var
modifikatorsuz Yox Yox Var Var
private Yox Yox Yox Var

1. public modifikatoru.

public modifikatoru ilə işarələnmiş metoda (dəyişənə və ya sinifə) proqramın istənilən yerindən müraciət etmək olar. Bu ən yüksək açıqlıq səviyyəsidir – heç bir məhdudiyyət yoxdur.

2. private modifikatoru.

private modifikatoru ilə işarələnmiş metoda (dəyişənə və ya sinifə) yalnız onun elan edildiyi həmin sinifdən müraciət etmək olar. Qalan bütün siniflər üçün bu metod (və ya dəyişən) - görünməzdir və "sanki mövcud deyil". Bu ən yüksək qapalılıq səviyyəsidir — yalnız öz sinifi.

3. Modifikatorsuz (standart modifikator).

Əgər metod (və ya dəyişən) heç bir modifikatorla işarələnməyibsə, onlar "standart modifikator" ilə işarələnmiş kimi hesab olunur. Bu modifikatoru olan dəyişənlər və ya metodlar (yəni ümumiyyətlə heç biri olmayanlar) yalnız eyni paketdən olan bütün siniflərə görünür. Və yalnız onlara. Bu modifikator bəzi hallarda package adlanır, çünki dəyişənlərə və metodlara giriş onların sinfinin yerləşdiyi paketin bütün elementlərinə açıqdır.

4. protected modifikatoru.

protected modifikatoru ilə işarələnmiş metoda həmin sinifdən, həmin paketdən və varis siniflərdən (metodun elan edildiyi sinifdən miras alan siniflərdən) müraciət etmək olar. Bu mövzunu Java Core missiyasında daha ətraflı araşdıracağıq.

Java Syntax missiyasının sonuna qədər bütün metodlarınıza (eləcə də siniflərinizə və sinif dəyişənlərinə) public modifikatorunu göstərə bilərsiniz. Digər modifikatorlara yalnız OOP-ni fəal şəkildə öyrənməyə başladıqda ehtiyacınız olacaq.

Modifikatorlar niyə lazımdır?

Söhbət eyni vaxtda onlarla və yüzlərlə proqramçı tərəfindən yazılan böyük layihələrdən gedir.

Bəzən elə hallar olur ki, proqramçı sinifinin çox böyük metodunu hissələrə bölmək və əlavə metodlar yaratmaq istəyir. Lakin eyni zamanda digər proqramçıların bu əlavə metodları çağırmasını istəmir, çünki bu halda sinifin kodu düzgün işləməyə bilər.

Məhz buna görə belə modifikatorlar icad olunub. Əlavə metodu private ilə işarələdiniz, və sizin sinifdən başqa heç bir kod bu əlavə metodu görə bilməz.



2. static açar sözü

static açar sözü metodu statikə çevirir. Bu nədir, daha sonra öyrənəcəyik, amma indi statik metodlarla bağlı bir neçə faktı yadda saxlayaq.

Fakt 1. Statik metod heç bir obyektə bağlı deyil, amma elan edildiyi sinifə aiddir. Statik metodu çağırmaq üçün aşağıdakı yazılır:

SinifAdı.metodAdı()

Statik metodların nümunələri:

Sinif adı Statik metod adı
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Sinif adı statik metodun adına qədər yazmaq lazım deyil, əgər statik metodu içəridən çağırırsınızsa — eyni sinifdən. Məhz buna görə, hər dəfə çağırılan statik metodların adlarından əvvəl Solution yazmağa ehtiyacınız yoxdur.

Fakt 2. Statik metod öz sinifinin qeyri-statik metodlarına müraciət edə bilmir. Statik metod yalnız statik metodlara müraciət edə bilər. Buna görə də, main metodundan çağırmaq istədiyiniz bütün metodları statik elan edirik.

Niyə? OOP-ni öyrənməyə başladıqda və statik metodların necə işlədiyini anladıqda bu suala özünüz cavab verə biləcəksiniz.



3. throws açar sözü

Metod bəyan etmələrində çox güman ki, qarşınıza çıxan başqa bir açar söz var — bu, throws sözüdür. O, giriş modifikatorları və static açar sözündən fərqli olaraq metodun parametrlərindən sonra yerləşir:

public static tip adı(parametrlər) throws Exception
{
   metodun kodu
}

Onun mənasını tam olaraq daha sonra, istisnaları öyrənəndə dərk edəcəyik.

Amma qısa şəkildə toxunaraq demək olar ki, throws açar sözü ilə işarələnmiş metodda Exception (tamamən ondan irsən alınmış siniflər) tipində xətalar (istisnalar) meydana gələ bilər. Əgər sinifdə bir neçə növdə xəta baş verə bilərsə, bütün növləri vergüllə ayırmaq lazımdır.


4. main metodu

Bütün modifikatorları ilə metodun elan edildiyi sətir, həmin metodu digər siniflərdən və metodlardan necə çağırılacağını, hansı tip nəticəni qaytaracağını və işləyərkən hansı mümkün səhvlərin baş verə biləcəyini müəyyən edəcək.

Belə bir sətir metodun elan edilməsi adlanır və ümumi görünüşü belədir:

giriş əldə modifikatorları static tip ad(parametrlər) throws xətalar
Metod elanının ümumi görünüşü

Harada giriş əldə modifikatorları — bunlar public, protected, private və ya heç biri;

static statik metod üçün qoyulur (statik olmayan metodlar üçün yoxdur)

tip — funksiyanın nəticə tipi (void əgər nəticə yoxdursa)

İndi, çox güman ki, metodun main elanında bütün açar sözlərin nə demək olduğunu başa düşürsünüz:

public static void main(String[] args) throws Exception
main metodunun elanı

main() metoduna hər hansı bir sinifdən giriş mümkündür, bu barədə public sözü danışır.

Metod statikdir (onu açıq şəkildə Solution.main() şəklində çağırmaq olar).

main metodu heç bir nəticə qaytarmır. Nəticə tipi — void (boş tip/süni tip)

main metodu parametr qəbul edir(!): sətirlərin massivi. args adı bizə "proqramın arqumentləri" haqda ipucu verir. Proqram işlədilərkən ona parametrlər — sətirlərdən ibarət massiv ötürmək olar. Bu massiv də args massivində saxlanacaqdır main() metodunun.

main() metodunda Exception tipində (və ya onun törəmələrində) işlənməmiş səhvlər yarana bilər.


Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION