JavaRush /Java Blogu /Random-AZ /Modifikatorlar və ya Java dünyasında sehrləri necə yaymaq...
Petr Gorskin
Səviyyə
Москва

Modifikatorlar və ya Java dünyasında sehrləri necə yaymaq olar

Qrupda dərc edilmişdir
Qalaktik gününüz xeyir, yoldaşlar! Bu, mənim ilk planetlərarası əlyazmamdır və mən mühəndis olduğum üçün bəzi anlayışların təfsiri yerdən kənar dildə edilə bilər.
Dəyişdiricilər və ya Java dünyasında sehrləri necə yaymaq olar - 1
Giriş Məncə, Java qapıları (paket) olan sonsuz dəhlizə bənzəyir. Bu qapıların hər birinin arxasında boş yer və obyektlərin yaradılması üçün təlimatlar (siniflər) olan sehrli tumarlar dağının saxlandığı bir fayl şkafı var. Hər bir sürüşdürmə bir sıra xüsusiyyətlər (dəyişənlər) və qabiliyyətlər (metodlar) - ya sinfin özündə, ya da onun əsasında yığılmış obyektdə yerinə yetirilən hərəkətləri (sahələri) təsvir edir. Bu mərhələdə özümüzü sehrbazlar kimi təsəvvür edək və tamamilə yeni bir təlimat (sinif) yaratmağa çalışaq. Beləliklə: Dəyişdiricilər və ya Java dünyasında sehrlər yaratmaq yolları - 2Gəlin müdriklik iksirini içək (əsasları öyrənək) və təlimatlar yazmağa başlayaq. Giriş və giriş olmayan modifikatorlar Təsəvvür edək ki, hər hansı bir təlimat və onun əsasında yaradılmış obyekt, həmçinin onun xüsusiyyətləri və qabiliyyətləri əvvəlcə sehrli şəkildə sehrlənəcək, yəni. onlara xüsusi dəyişdiricilər dəstləri təyin ediləcək. Gəlin mümkün sehrlər haqqında bələdçi yaratmağa çalışaq.
  1. Sinfin, obyektin və ya sahənin əlçatanlığını təsvir edən giriş modifikatoru tələb olunur: bu olmadıqda, JVM (bu, universal sehr mənbəyidir) paketə avtomatik olaraq standart identifikator təyin edir.

    İkinci modifikatordan başlayaraq, məcburi olmayan və bir-biri ilə ziddiyyət təşkil edən qeyri-giriş dəyişdiriciləri var (lakin ilk növbədə).

  2. Statik dəyişdirici sinif, obyekt və ya sahənin statik olduğunu göstərir. Amma bu nə deməkdir? Əsasən tarlalarda sınayacağıq.

    Statik dəyişənlər sinif dəyişənləri adlanır və bu sinfin bütün nümunələri üçün unikaldır. Statik metodlar elan olunduğu obyekti yaratmadan çağırıla bilər. Statik siniflər bir sinfi digərinə yerləşdirərkən istifadə olunur və daxili siniflə xarici arasındakı qarşılıqlı əlaqə prinsipi metodlara bənzəyir (bu ayrıca müzakirə mövzusudur). Obyekt daxilində ayrıca blok kimi də istifadə edilə bilər.

  3. Son dəyişdirici dəyişənə onun sabit olduğunu effektiv şəkildə göstərir. Metodlar üçün - varislik zamanı onların ləğv edilə bilməyəcəyi, lakin siniflər üçün bu, ondan miras alına bilməyəcəyinə işarədir (dəyişməz).

    Statik və son dəyişdiricilər siniflərə, obyektlərə və sahələrə tətbiq edilir. Bununla belə, elə modifikatorlar var ki, onlardan yalnız bəzilərinə (və ya hətta onların bir hissəsinə aiddir, çünki həm dəyişən, həm də metod sahədir, lakin bütün dəyişdiricilər hər ikisinə aid deyil). Bənzətmə çəksək, sürət üçün yalnız çəkmələri və əlcəkləri ovsunlamaq olar (onların daha sürətli hərəkət etməsi üçün), lakin sürət üçün papağı ovsunlamaq mənasızdır (və Universal Müşahidə Şurası (tərtibçi) buna icazə verməyəcək).

  4. Abstract modifikatoru yalnız metod və siniflərə aiddir . Mücərrəd metod icrası (bədəni) olmayan üsuldur.

    Əgər sinif mücərrəd olaraq qeyd olunubsa, o, ya abstrakt metodları ehtiva edir, ya da həmin sinfin nümunələrinin yaradılmasının qarşısını almaq üçün edilir. Bir bənzətmə çəksək, təlimatların ortasında "Obyektin rənglənməsi" başlığını görə bilərsiniz, bundan sonra heç bir təsvir yoxdur. Bunlar. bu təlimatdan istifadə edərək bir obyekt yarada bilərsiniz və siz onu rəngləndirə də bilərsiniz, lakin bu xüsusi təlimat bunun necə olduğunu demir (bu obyekt əsasında qırmızı obyekt yaratmaq üçün öz təlimatlarınızı yazın və onu necə rəngləndirməyi təsvir edin).

Çox yivli mühitdə işləyərkən xüsusi dəyişdiricilərdən istifadə edilə bilər:
  1. Sinxronlaşdırılmış dəyişdirici yalnız metodlar üçün istifadə olunur. Onun mövcudluğu onu göstərir ki, eyni anda yalnız bir ip onu icra edə bilər. Obyekt daxilində ayrıca kod bloku kimi də istifadə edilə bilər (sinxronizasiya obyekti göstərilməklə).

  2. Uçucu modifikator - yalnız dəyişənlər üçün . Birdən çox mövzu ilə eyni vaxtda istifadə edilə bilən dəyişənlər üçün istifadə edilməsi tövsiyə olunur. Belə dəyişdiricisi olan dəyişən hər dəfə dəyişdirildikdə dərhal prosessorun ön yaddaşından əsas yaddaşa kopyalanır və paralel mövzuların ən son dəyəri almasına imkan verir.

    Qeyd etmək lazımdır ki, uçucu dəyişənə yalnız bir mövzu yaza bildiyi, qalanları isə yalnız ondan oxuya bildiyi hallarda tətbiq olunur. Digər hallarda, dəyişkən dəyişənə yazan metodlara sinxronlaşdırılmış dəyişdirici əlavə etmək daha yaxşıdır.

  3. Keçici modifikator – yalnız dəyişənlər üçün . Bu dəyişdirici obyekti seriallaşdırarkən atlanmalı olan dəyişənləri qeyd edir (bu, o qədər ağıllı prosesdir ki, prinsipcə, bu barədə özünüz oxuya bilərsiniz...)*

    * - Mən bu məqaləni 17-ci səviyyədə yazdım və o vaxta qədər seriallaşdırma bir proses kimi təsvir edilməmişdi, ona görə də kopyala-yapışdırmaq əvəzinə, lazım gələrsə, özünüz öyrənməyi məsləhət görürəm.

Ziddiyyətli Modifikator Cütlükləri Modifikatorların müxtəlif siniflərə, obyektlərə və sahələrə tətbiqi ilə yanaşı, ziddiyyətli cütlər anlayışı da mövcuddur. Deyək ki, dəbilqəni gücü ilə sehrləmək onu ağırlaşdırır və eyni zamanda yüngül olması üçün ovsunlamaq istəyirsən. Biri digərinə uyğun gəlmir.
  1. Final və Dəyişən - dəyişənlərə gəldikdə, biz eyni zamanda deyə bilmərik ki, son (sabit) və bir neçə iplik onu dəyişdirmək qabiliyyətinə malikdir... Axı o, daimidir və hər an bir ip onu oxuya bilər. , lakin heç bir mövzu konstanta dəyişə bilməz (Universal Müşahidə Şurası buna icazə verməyəcək).
  2. Yekun və Mücərrəd - siniflər və metodlar həm mücərrəd (əksər hallarda onların həyata keçirilməsi üçün aydınlaşdırılması ehtiyacını nəzərdə tutur) həm də yekun ola bilməz, yəni. dəyişməz. Məlum olub ki, təlimatlarda hər hansı bir materialdan (mücərrəd hissədən) yaxşı davamlı dəbilqə necə yaradılacağı deyilir, lakin bunun üçün onda heç bir deşik olmamalıdır (son məcburi hissə dəyişdirilə bilməz).
  3. Abstract və Static - Abstrakt metod eyni zamanda statik və ya sinxronizasiya edilə bilməz. Statik mücərrəd metodun heç bir mənası yoxdur, çünki o, nəinki heç nə etmir, həm də bütöv bir sinfə aiddir - nəticə faydasız bir şeydir.
  4. Abstrakt və Sinxronlaşdırılmış - heç bir iş görməyən metodla işi sinxronlaşdırmağın mənası nədir?
Xülasə Beləliklə, dəyişdiricilərin təsviri başa çatdı, bütün münaqişələr həll edildi və indi nəticəni fırıldaqçı vərəqlə - sehr diaqramı ilə birləşdirə bilərsiniz: Dəyişdiricilər və ya Java dünyasında sehrləri necə yaymaq olar - 3Sonda demək istəyirəm ki, bu məqaləni yazmaq istəyimin həyata keçirilməsi idi. dəyişdiriciləri öyrənmək. Təcrübənin uğurlu olub-olmaması mühakimə etmək sizə bağlıdır. Mən onu təkmilləşdirmək/düzəltmək üçün təkliflərinizi gözləyirəm və ola bilsin ki, biz onu yeni başlayan java oyunçuları üçün çox faydalı kitabçaya çevirəcəyik.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION