JavaRush /Java blogi /Random-UZ /Modifikatorlar yoki Java dunyosida sehrlarni qanday qilis...
Petr Gorskin
Daraja
Москва

Modifikatorlar yoki Java dunyosida sehrlarni qanday qilish kerak

Guruhda nashr etilgan
Xayrli galaktika kuni, o'rtoqlar! Bu mening birinchi sayyoralararo qo'lyozma bo'lib, men muhandis bo'lganim uchun ba'zi tushunchalarni talqin qilish yerdan tashqari tilda amalga oshirilishi mumkin.
Modifikatorlar yoki Java dunyosida sehrlarni qanday qilish kerak - 1
Kirish Menimcha, Java eshiklari (paketi) bilan cheksiz koridorga o'xshaydi. Ushbu eshiklarning har birining orqasida bo'sh joy va fayl shkafi mavjud bo'lib, unda ob'ektlarni yaratish bo'yicha ko'rsatmalar (sinflar) bilan sehrli varaqlar tog'i saqlanadi. Har bir varaq xarakteristikalar (o'zgaruvchilar) va qobiliyatlar (usullar) to'plamini tavsiflaydi - sinfning o'zida yoki uning asosida yig'ilgan ob'ektda bajariladigan harakatlar (maydonlar). Ushbu bosqichda keling, o'zimizni sehrgarlar sifatida tasavvur qilaylik va butunlay yangi ko'rsatma (sinf) yaratishga harakat qilaylik. Shunday qilib: Modifikatorlar yoki Java olamida qanday sehrlash mumkin - 2Keling, donolik eliksirini ichamiz (asosiy ma'lumotlarni o'rganamiz) va ko'rsatmalar yozishni boshlaymiz. Kirish va kirish mumkin bo'lmagan modifikatorlar Tasavvur qilaylik, har qanday ko'rsatma va uning asosida yaratilgan ob'ekt, shuningdek, uning xususiyatlari va qobiliyatlari dastlab sehrli tarzda sehrlanadi, ya'ni. ularga modifikatorlarning maxsus to'plamlari tayinlanadi. Keling, mumkin bo'lgan sehrlar bo'yicha qo'llanma yaratishga harakat qilaylik.
  1. Sinf, ob'ekt yoki maydonga kirish imkoniyatini tavsiflovchi kirish modifikatori talab qilinadi: u yo'q bo'lganda, JVM (bu universal sehr manbai) avtomatik ravishda paketga standart identifikatorni tayinlaydi.

    Ikkinchi modifikatordan boshlab kirish huquqiga ega bo'lmagan modifikatorlar mavjud bo'lib, ular majburiy emas va bir-biriga zid kelishi mumkin (lekin birinchi navbatda).

  2. Static modifikatori sinf, ob'ekt yoki maydonning statik ekanligini bildiradi. Lekin bu nimani anglatadi? Asosan biz uni dalalarda sinab ko'ramiz.

    Statik o'zgaruvchilar sinf o'zgaruvchilari deb ataladi va shu sinfning barcha misollari uchun xosdir. Statik usullarni ular e'lon qilingan ob'ektni yaratmasdan chaqirish mumkin. Statik sinflar bir sinfni boshqasiga joylashtirishda qo'llaniladi va ichki va tashqi sinf o'rtasidagi o'zaro ta'sir printsipi usullarga o'xshaydi (bu alohida muhokama uchun mavzu). Ob'ekt ichida alohida blok sifatida ham foydalanish mumkin.

  3. Yakuniy modifikator o'zgaruvchiga uning doimiy ekanligini ko'rsatadi. Usullar uchun - meros davomida ularni bekor qilib bo'lmaydi, lekin sinflar uchun bu undan meros qilib bo'lmasligidan dalolat beradi (o'zgarmas).

    Statik va yakuniy modifikatorlar sinflar, ob'ektlar va maydonlar uchun qo'llaniladi. Biroq, ularning faqat ba'zilariga (yoki hatto ularning bir qismiga) tegishli bo'lgan modifikatorlar mavjud, chunki o'zgaruvchi ham, usul ham maydondir, lekin hamma modifikatorlar ikkalasiga ham tegishli emas). Agar biz o'xshashlik qilsak, tezlik uchun faqat etik va qo'lqoplarni sehrlash mumkin (tezroq harakat qilish uchun), lekin tezlik uchun shlyapani sehrlash ma'nosizdir (va Umumjahon Kuzatuv Kengashi (tuzuvchi) bunga yo'l qo'ymaydi).

  4. Abstract modifikatori faqat usullar va sinflar uchun amal qiladi . Mavhum usul - bu amalga oshirilmagan (tanasi) usul.

    Agar sinf mavhum deb belgilangan bo'lsa, u mavhum usullarni o'z ichiga oladi yoki bu sinf misollarini yaratishni oldini olish uchun amalga oshiriladi. Agar biz analogiya chizadigan bo'lsak, ko'rsatmalarning o'rtasida siz "Ob'ektni rang berish" sarlavhasini ko'rishingiz mumkin, undan keyin hech qanday tavsif yo'q. Bular. ushbu ko'rsatma yordamida siz ob'ekt yaratishingiz mumkin va siz uni ranglashingiz ham mumkin, ammo bu maxsus ko'rsatma qanday qilib aytilmagan (ushbu ob'ekt asosida qizil ob'ektni yaratish bo'yicha o'z ko'rsatmalaringizni yozing va uni qanday rang berishni tasvirlab bering).

Ko'p tarmoqli muhitda ishlashda maxsus modifikatorlardan foydalanish mumkin:
  1. Sinxronlashtirilgan modifikator faqat usullar uchun ishlatiladi. Uning mavjudligi uni bir vaqtning o'zida faqat bitta ip bajarishi mumkinligini ko'rsatadi. Ob'ekt ichida alohida kod bloki sifatida ham foydalanish mumkin (sinxronizatsiya ob'ektini ko'rsatgan holda).

  2. Uchuvchi modifikator - faqat o'zgaruvchilar uchun . Bir vaqtning o'zida bir nechta iplar tomonidan ishlatilishi mumkin bo'lgan o'zgaruvchilar uchun foydalanish tavsiya etiladi. Bunday modifikatorga ega o'zgaruvchi har safar o'zgarganda protsessor keshidan asosiy xotiraga bir zumda ko'chiriladi, bu esa parallel oqimlarga eng so'nggi qiymatni olish imkonini beradi.

    Shuni ta'kidlash kerakki, volatile o'zgaruvchiga faqat bitta ip yozishi mumkin bo'lgan hollarda qo'llaniladi, qolganlari esa faqat undan o'qiy oladi. Boshqa hollarda, sinxronlashtirilgan modifikatorni o'zgaruvchan o'zgaruvchiga yozadigan usullarga qo'shish yaxshidir.

  3. Vaqtinchalik modifikator - faqat o'zgaruvchilar uchun . Ushbu modifikator ob'ektni ketma-ketlashtirishda o'tkazib yuborilishi kerak bo'lgan o'zgaruvchilarni belgilaydi (bu shunday aqlli jarayonki, printsipial jihatdan, siz bu haqda o'zingiz o'qishingiz mumkin...)*

    * - Men ushbu maqolani 17-darajada yozdim va shu vaqtgacha ketma-ketlashtirish jarayon sifatida tasvirlanmagan edi, shuning uchun nusxa ko'chirish o'rniga, agar kerak bo'lsa, uni o'zingiz o'rganishingizni maslahat beraman.

Bir-biriga zid bo'lgan o'zgartiruvchi juftliklar Modifikatorlarning turli sinflar, ob'ektlar va maydonlarga qo'llanilishidan tashqari, ziddiyatli juftliklar tushunchasi ham mavjud. Aytaylik, dubulg'ani kuch bilan sehrlash uni og'irlashtiradi va shu bilan birga siz uni engil bo'lishi uchun sehrlashni xohlaysiz. Biri ikkinchisiga mos kelmaydi.
  1. Yakuniy va o‘zgaruvchan – o‘zgaruvchilar haqida gap ketganda, biz bir vaqtning o‘zida uni yakuniy (doimiy) deb ayta olmaymiz va bir nechta iplar uni o‘zgartirish imkoniyatiga ega... Axir, u doimiy va istalgan vaqtda ip uni o‘qiy oladi. , lekin bitta ip konstantani o'zgartira olmaydi (Umumjahon Kuzatuv Kengashi bunga ruxsat bermaydi).
  2. Yakuniy va Abstrakt - sinflar va usullar mavhum (ko'p hollarda ularni amalga oshirish uchun aniqlashtirish zarurligini anglatadi) va yakuniy bo'lishi mumkin emas, ya'ni. o'zgarmas. Ma'lum bo'lishicha, ko'rsatmalarda har qanday materialdan (mavhum qism) yaxshi bardoshli dubulg'ani qanday yaratish kerakligi aytilgan, ammo buning uchun unda hech qanday teshik bo'lmasligi kerak (oxirgi majburiy qismni o'zgartirish mumkin emas).
  3. Abstrakt va statik - mavhum usulni bir vaqtning o'zida statik yoki sinxronlash mumkin emas. Statik mavhum usul hech qanday ma'noga ega emas, chunki u nafaqat hech narsa qilmaydi, balki butun bir sinfga tegishli - natija foydasiz narsadir.
  4. Abstrakt va sinxronlashtirilgan – ishni hech narsa qilmaydigan usul bilan sinxronlashtirishdan nima maqsad bor?
Xulosa Shunday qilib, modifikatorlarning tavsifi tugadi, barcha nizolar hal qilindi va endi siz natijani aldash varag'i - sehrli diagramma bilan birlashtirishingiz mumkin: Modifikatorlar yoki Java dunyosida sehrlarni qanday chiqarish mumkin - 3Xulosa qilib aytmoqchimanki, ushbu maqolani yozish mening xohishimni amalga oshirish edi. modifikatorlarni o'rganish. Tajriba muvaffaqiyatli bo'ladimi yoki yo'qmi - bu sizning qaroringizga bog'liq. Uni takomillashtirish/tuzatish bo'yicha takliflaringizni kutaman va, ehtimol, biz uni java o'yinchilari uchun juda foydali qo'llanmaga aylantiramiz.
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION