JavaRush /Блоги Java /Random-TG /Тағирдиҳандаҳо ё чӣ гуна ҷодугарӣ дар ҷаҳони Java
Petr Gorskin
Сатҳи
Москва

Тағирдиҳандаҳо ё чӣ гуна ҷодугарӣ дар ҷаҳони Java

Дар гурӯҳ нашр шудааст
Рӯзи галактикӣ муборак, рафиқон! Ин аввалин дастнависи байнисайёравии ман аст ва азбаски ман муҳандис ҳастам, тафсири баъзе мафҳумҳоро метавон бо забони ғайризаминӣ анҷом дод.
Тағйирдиҳандаҳо ё тарзи ҷодугарӣ дар ҷаҳони Java - 1
Муқаддима Ба андешаи ман, Java ба як долони беохир бо дарҳо (баста) монанд аст. Дар паси ҳар як аз ин дарҳо фазои холӣ ва шкафи файл мавҷуд аст, ки дар он кӯҳи варақаҳои ҷодугарӣ бо дастурҳо (синфҳо) барои сохтани an objectҳо нигоҳ дошта мешаванд. Ҳар як варақ маҷмӯи хусусиятҳо (тағйирёбандаҳо) ва қобorятҳо (усулҳо) - амалҳо (майдонҳо) -ро дар худи синф ё an objectи дар асоси он ҷамъовардашуда тавсиф мекунад. Дар ин марҳила, биёед худро ҷодугарон тасаввур кунем ва кӯшиш кунем, ки дастури (синф) комилан нав эҷод кунем. Ҳамин тавр: Тағйирдиҳандаҳо ё тарзи ҷодугарӣ дар ҷаҳони Java - 2Биёед эликсири ҳикматро бинӯшем (асосиро омӯзем) ва навиштани дастурҳоро оғоз кунем. Тағйирдиҳандаҳои дастрас ва ғайридастрас Тасаввур кунем, ки ҳама гуна дастур ва an objectе, ки дар заминаи он сохта шудааст, инчунин хусусиятҳо ва қобorятҳои он, дар аввал ба таври ҷодугарӣ меафтад, яъне. ба онхо мачмуи муайяни дигаргунсозихо таъин карда мешаванд. Биёед кӯшиш кунем, ки дастур оид ба ҷодуҳои имконпазир эҷод кунем.
  1. Тағйирдиҳандаи дастрасӣ , ки дастрасии синф, an object ё майдонро тавсиф мекунад, лозим аст: дар сурати набудани он, JVM (ин манбаи ҷодугарии универсалӣ аст) ба таври худкор идентификатори пешфарзро ба баста таъин мекунад.

    Аз тағирдиҳандаи дуюм сар карда, тағирдиҳандаҳои дастрасии ғайрирасмӣ мавҷуданд, ки ҳатмӣ нестанд ва инчунин метавонанд бо ҳамдигар мухолифат кунанд (вале дар аввал чизҳои аввал).

  2. Тағирдиҳандаи Static нишон медиҳад, ки синф, an object ё майдон статикӣ аст. Аммо ин чӣ маъно дорад? Асосан мо онро дар майдонҳо месанҷем.

    Тағйирёбандаҳои статикӣ тағирёбандаҳои синфӣ номида мешаванд ва барои ҳама мисолҳои ин синф беназиранд. Методҳои статикиро бидуни эҷоди an objectе, ки дар он эълон шудаанд, даъват кардан мумкин аст. Синфҳои статикӣ ҳангоми лона кардани як синф ба синфи дигар истифода мешаванд ва принсипи таъсири мутақобилаи синфи дарунӣ ва берунӣ ба усулҳо монанд аст (ин мавзӯъ барои муҳокимаи алоҳида аст). Он инчунин метавонад ҳамчун блоки алоҳида дар дохor an object истифода шавад.

  3. Тағирдиҳандаи ниҳоӣ ба тағирёбанда ба таври муассир нишон медиҳад, ки он доимӣ аст. Барои усулҳо - ки онҳоро дар давоми мерос бекор кардан мумкин нест, аммо барои синфҳо ин нишонаи он аст, ки онро аз он мерос гирифтан мумкин нест (тағирнопазир).

    Тағирдиҳандаҳои статикӣ ва ниҳоӣ ба синфҳо, an objectҳо ва майдонҳо татбиқ мешаванд. Аммо, тағирдиҳандаҳо мавҷуданд, ки танҳо ба баъзеи онҳо (ё ҳатто як қисми онҳо, зеро ҳам тағирёбанда ва ҳам усул майдон мебошанд, аммо на ҳама тағирдиҳандаҳо ба ҳарду дахл доранд). Агар қиёс кунем, танҳо ботинка ва дастпӯшакҳоро метавон барои суръат (барои тезтар ҳаракат кардан) сеҳру ҷоду кард, аммо ҷодугарӣ кардани кулоҳ барои суръат бефоида аст (ва Шӯрои нозирони умумиҷаҳонӣ (мураттиб) ба ин иҷозат намедиҳад).

  4. Тағирдиҳандаи абстракт танҳо ба усулҳо ва синфҳо дахл дорад . Усули абстрактӣ усулест, ки бидуни татбиқ (бадан).

    Агар синф ҳамчун абстракт қайд карда шавад, он ё усулҳои абстрактиро дар бар мегирад ё барои пешгирӣ кардани эҷоди мисолҳои он синф анҷом дода мешавад. Агар мо аналогияро кашем, дар мобайни дастурҳо шумо метавонед сарлавҳаи "Ранг кардани an object" -ро бинед, ки пас аз он тавсиф нест. Онхое. бо истифода аз ин дастур шумо метавонед an object эҷод кунед ва шумо метавонед онро ранг кунед, аммо ин дастури мушаххас намегӯяд, ки чӣ тавр (дастурҳои худро барои сохтани an objectи сурх дар асоси ин an object нависед ва тарзи ранг кардани онро тасвир кунед).

Ҳангоми кор дар муҳити чанд ришта, тағирдиҳандаҳои махсус метавонанд истифода шаванд:
  1. Тағирдиҳандаи Syncronized танҳо барои усулҳо истифода мешавад. Мавҷудияти он нишон медиҳад, ки дар як вақт танҳо як ришта метавонад онро иҷро кунад. Инчунин метавонад ҳамчун блоки алоҳидаи code дар дохor an object истифода шавад (муайян кардани an objectи ҳамоҳангсозӣ).

  2. Тағирдиҳандаи идоранашаванда - танҳо барои тағирёбандаҳо . Тавсия дода мешавад, ки барои тағирёбандаҳое истифода шаванд, ки метавонанд дар як вақт аз ҷониби якчанд ришта истифода шаванд. Тағйирёбанда бо чунин тағирдиҳанда ҳар дафъае, ки он тағир меёбад, фавран аз кэши протсессор ба хотираи асосӣ нусхабардорӣ карда мешавад ва имкон медиҳад, ки риштаҳои параллелӣ арзиши охиринро гиранд.

    Бояд қайд кард, ки ноустувор дар ҳолатҳое татбиқ мешавад, ки танҳо як ришта метавонад ба тағирёбанда нависад ва боқимонда танҳо аз он хонда шавад. Барои ҳолатҳои дигар, беҳтар аст, ки тағирдиҳандаи ҳамоҳангшударо ба усулҳое илова кунед, ки ба тағирёбандаи тағйирёбанда менависанд.

  3. Тағирдиҳандаи муваққатӣ - танҳо барои тағирёбандаҳо . Ин тағирдиҳанда тағирёбандаҳоеро қайд мекунад, ки ҳангоми сериализатсияи an object (ин як раванди оқилона аст, ки шумо метавонед дар бораи он худатон хонед...)*

    * - Ман ин мақоларо дар сатҳи 17 навиштам ва то он вақт силсиласозӣ ҳамчун раванд тавсиф карда нашуда буд, бинобар ин ба ҷои нусхабардорӣ, ман ба шумо маслиҳат медиҳам, ки агар лозим бошад, онро худатон омӯзед.

Ҷуфтҳои тағйирдиҳандаи ба ҳам зид Ба ғайр аз татбиқи тағирдиҳандаҳо ба синфҳо, an objectҳо ва майдонҳои гуногун, инчунин мафҳуми ҷуфтҳои ба ҳам зид вуҷуд дорад. Фарз мекунем, ки бо қувват сеҳру ҷоду кардани кулоҳ онро вазнин мекунад ва ҳамзамон мехоҳед, ки сабук бошад. Яке бо дигаре мувофиқат намекунад.
  1. Ниҳоӣ ва ноустувор - вақте сухан дар бораи тағирёбандаҳо меравад, мо наметавонем дар як вақт бигӯем, ки он ниҳоӣ (константӣ) аст ва чанд ришта қобorяти тағир додани онро доранд... Охир, доимист ва дар ҳар лаҳза ришта метавонад онро бихонад. , вале ягон ришта константаро тагьир дода наметавонад (Шурои умумии назорат ба он ичозат намедихад).
  2. Ниҳоӣ ва абстрактӣ - синфҳо ва усулҳо наметавонанд ҳам абстрактӣ бошанд (ки дар аксари ҳолатҳо зарурати равшан кардани онҳо барои татбиқро дар назар дорад) ва ниҳоӣ, яъне. тагйирнопазир. Маълум мешавад, ки дастурҳо мегӯянд, ки чӣ гуна аз ҳама гуна мавод (қисми абстрактӣ) як кулоҳи хуби пойдор сохтан мумкин аст, аммо барои ин набояд дар он сӯрохиҳо мавҷуд бошад (қисмати хатмии ниҳоӣ тағир дода намешавад).
  3. Абстрактӣ ва статикӣ - Усули абстрактӣ наметавонад дар як вақт статикӣ ё ҳамоҳанг карда шавад. Усули абстрактии статикӣ ҳеҷ маъно надорад, зеро он на танҳо коре намекунад, балки ба тамоми синф тааллуқ дорад - натиҷа чизи бефоида аст.
  4. Реферат ва синхронизатсия - синхронизатсияи кор бо усуле, ки ҳеҷ кор намекунад?
Ҷамъбаст Ҳамин тавр, тавсифи тағирдиҳандаҳо ба итмом расид, ҳама ихтилофҳо ҳал карда шуданд ва акнун шумо метавонед натиҷаро бо варақаи фиреб - диаграммаи ҷодугарӣ муттаҳид кунед: Тағйирдиҳандаҳо ё тарзи ҷодугарӣ дар ҷаҳони Java - 3Дар охир, ман мехоҳам бигӯям, ки навиштани ин мақола амалӣ шудани хоҳиши ман буд. барои омух-тани ​​дигаргунсозихо. Новобаста аз он ки таҷриба муваффақ аст ё не, ба шумо вобаста аст. Ман интизори пешниҳодҳои шумо оид ба такмил/ислоҳи он ҳастам ва шояд якҷоя мо онро ба як дастури муфид барои бозигарони навгони Java табдил диҳем.
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION