Эксалдык өзгөрмө менен жергиликтүү өзгөрмөнүн ортосундагы айырма

Эксалдык өзгөрмө менен жергиликтүү өзгөрмөнүн ортосундагы айырма
Эксалдык өзгөрмө менен жергиликтүү өзгөрмөнүн ортосундагы айырма

Video: Эксалдык өзгөрмө менен жергиликтүү өзгөрмөнүн ортосундагы айырма

Video: Эксалдык өзгөрмө менен жергиликтүү өзгөрмөнүн ортосундагы айырма
Video: Oh my eyes🙄#shorts#theloveyougiveme #你给我的喜欢#wangziqi #王子奇 #wangyuwen #王玉雯 #cdrama #fyp 2024, Ноябрь
Anonim

Инстанция өзгөрмө жана жергиликтүү өзгөрмө

Эсептик өзгөрмө объектке багытталган программалоодо бар өзгөрмөнүн бир түрү. Бул класста аныкталган өзгөрмө жана ал класстын ар бир объекти ошол өзгөрмөнүн өзүнчө көчүрмөсүн сактайт. Башка жагынан алганда, локалдык өзгөрмөлөрдү колдонуу объектиге багытталган программалоо тилдери менен эле чектелбейт. Бул өзгөрмө, аны белгилүү бир код блогунун (мисалы, функция, цикл блогу ж.б.) ичинде гана баалоого болот. Ушул себептен улам, жергиликтүү өзгөрмөлөр жергиликтүү масштабга ээ деп айтылат.

Инстанция өзгөрмө деген эмне?

Инстанция өзгөрмөлөрү класстагы ар бир объекттин абалын сактоо үчүн объектке багытталган программалоодо колдонулат. Алар ошондой эле мүчө өзгөрмөлөр же талаа өзгөрмөлөрү катары белгилүү. Инстанция өзгөрмөлөрү Java'да статикалык ачкыч сөздү колдонбостон жарыяланат. Инстанция өзгөрмөлөрүндө сакталган маанилер ар бир объект үчүн уникалдуу (ар бир объекттин өзүнчө көчүрмөсү бар) жана аларда сакталган баалуулуктар ошол объекттин абалын билдирет. Мисалы өзгөрмө үчүн орун үймөктө, ал объект үймөктө бөлүнгөндө бөлүнөт. Демек, инстанция өзгөрмөлөрү объект жандуу болгонго чейин эс тутумда сакталат. Мисалы, бир унаанын түсү башка унаанын түсүнөн көз каранды эмес. Ошентип, унаа объектинин түсү инстанция өзгөрмөсүндө сакталышы мүмкүн. Иш жүзүндө, инстанция өзгөрмөлөрү класстардын ичинде жана методдордун сыртында жарыяланат. Адатта, инстанциялардын өзгөрмөлөрү купуя катары жарыяланып, аларга ал жарыяланган класстын ичинде гана кирүүгө болот.

Жергиликтүү өзгөрмө деген эмне?

Жергиликтүү өзгөрмөлөр локалдык масштабы бар өзгөрмөлөр болуп саналат жана алар белгилүү бир код блогунун ичинде жарыяланган. Жергиликтүү өзгөрмөлөр анын убактылуу абалын сактоо ыкмасы менен колдонулган өзгөрмөлөр катары каралышы мүмкүн. Локалдык өзгөрмөнүн масштабы өзгөрмө жарыяланган жердин жардамы менен аныкталат жана бул максат үчүн атайын ачкыч сөздөр колдонулбайт. Адатта, локалдык өзгөрмөгө кирүү ал жарыяланган код блогунун ичинде чектелген (б.а. ошол код блогунун ачуу жана жабуу кашааларынын ортосунда). Жергиликтүү өзгөрмөлөр адатта чалуулар стекинде сакталат. Бул рекурсивдүү функция чалууларына локалдык өзгөрмөлөрдүн өз көчүрмөлөрүн өзүнчө эстутум дарек мейкиндиктеринде сактоого мүмкүндүк берет. Метод аткарылып бүткөндөн кийин, ал ыкма жөнүндө маалымат чалуу стекинен чыгып, сакталган жергиликтүү өзгөрмөлөр да жок кылынат.

Эсептик өзгөрмө менен жергиликтүү өзгөрмөнүн ортосунда кандай айырма бар?

Инстанция өзгөрмөлөрү методдордон тышкаркы класстарда жарыяланып, алар объекттин абалын сакташат, ал эми локалдык өзгөрмөлөр код блокторунда жарыяланып, методдун абалын сактоо үчүн колдонулат. Инсандык өзгөрмө ошол өзгөрмө камтылган объект тирүү болгондо, ал эми локалдык өзгөрмө ошол метод/код блогун аткаруу учурунда жандуу болот. Инстанция өзгөрмөсүнө (ачык деп жарыяланган) класстын ичинде кирүүгө болот, ал эми локалдык өзгөрмөгө ал жарыяланган код блогунун ичинде гана кирүүгө болот. Инсандык өзгөрмөлөрдү колдонуу объектиге багытталган программалоо менен гана чектелет, ал эми жергиликтүү өзгөрмөлөр мындай чектөөгө ээ эмес.

Сунушталууда: