Дана айнымалысы және жергілікті айнымалы
Дана айнымалысы нысанға бағытталған бағдарламалауда бар айнымалының түрі болып табылады. Бұл сыныпта анықталған айнымалы және сол сыныптың әрбір нысанында сол айнымалының жеке көшірмесі болады. Екінші жағынан, жергілікті айнымалыларды қолдану объектіге бағытталған бағдарламалау тілдерімен шектелмейді. Бұл өзі анықталған кодтың белгілі бір блогында (мысалы, функция, цикл блогы және т.б.) ғана бағалануы мүмкін айнымалы. Осы себепті жергілікті айнымалылардың жергілікті ауқымы бар деп айтылады.
Дана айнымалысы дегеніміз не?
Дана айнымалылары сыныптағы әрбір нысанның күйін сақтау үшін нысанға бағытталған бағдарламалауда пайдаланылады. Олар мүше айнымалылар немесе өріс айнымалылары ретінде де белгілі. Дана айнымалы мәндері Java тіліндегі static кілт сөзін қолданбай жарияланады. Дана айнымалы мәндерінде сақталған мәндер әрбір нысан үшін бірегей (әр нысанның жеке көшірмесі бар) және оларда сақталған мәндер сол нысанның күйін білдіреді. Дана айнымалысы үшін бос орын үймеде, сол нысан үймеде бөлінгенде бөлінеді. Сондықтан дана айнымалылары объект тірі болғанша жадта сақталады. Мысалы, бір көліктің түсі басқа көліктің түсіне тәуелсіз. Осылайша, автомобиль нысанының түсін даналық айнымалы мәнде сақтауға болады. Іс жүзінде айнымалы айнымалылар сыныптар ішінде және әдістерден тыс жарияланады. Әдетте, даналық айнымалы мәндер жеке деп жарияланады, осылайша оларға тек ол жарияланған сынып ішінде қол жеткізуге болады.
Жергілікті айнымалы дегеніміз не?
Жергілікті айнымалылар - жергілікті ауқымы бар айнымалылар және олар белгілі бір код блогында жарияланады. Жергілікті айнымалы мәндерді оның уақытша күйін сақтау әдісі арқылы пайдаланылатын айнымалылар ретінде көруге болады. Жергілікті айнымалының ауқымы айнымалы жарияланған орын арқылы анықталады және бұл мақсат үшін арнайы кілт сөздер пайдаланылмайды. Әдетте, жергілікті айнымалыға қол жеткізу ол жарияланған код блогында шектеледі (яғни, осы код блогының ашу және жабу жақшалары арасында). Жергілікті айнымалылар әдетте қоңыраулар стекінде сақталады. Бұл рекурсивті функция шақыруларына жергілікті айнымалылардың жеке көшірмелерін жадтың бөлек мекенжай кеңістігінде сақтауға мүмкіндік береді. Әдіс өзінің орындалуын аяқтаған кезде, сол әдіс туралы ақпарат қоңыраулар стекінен шығып, сақталған жергілікті айнымалы мәндерді де жояды.
Дана айнымалысы мен жергілікті айнымалының айырмашылығы неде?
Дана айнымалы мәндері әдістерден тыс сыныптарда жарияланады және олар нысанның күйін сақтайды, ал жергілікті айнымалылар код блоктарында жарияланады және олар әдіс күйін сақтау үшін пайдаланылады. Дана айнымалысы осы айнымалыны қамтитын нысан тірі болғанша тірі, ал жергілікті айнымалы осы әдіс/код блогын орындау кезінде тірі болады. Дана айнымалысына (жалпы деп жарияланған) сынып ішінде қол жеткізуге болады, ал жергілікті айнымалыға ол жарияланған код блогында ғана қол жеткізуге болады. Дана айнымалы мәндерін пайдалану тек нысанға бағытталған бағдарламалаумен шектеледі, ал жергілікті айнымалыларда мұндай шектеу жоқ.