მაგალითის ცვლადი ლოკალური ცვლადის წინააღმდეგ
მაგალითის ცვლადი არის ცვლადის ტიპი, რომელიც წარმოდგენილია ობიექტზე ორიენტირებულ პროგრამირებაში. ეს არის ცვლადი, რომელიც განსაზღვრულია კლასში და ამ კლასის თითოეულ ობიექტს აქვს ამ ცვლადის ცალკე ასლი. მეორეს მხრივ, ლოკალური ცვლადების გამოყენება არ შემოიფარგლება მხოლოდ ობიექტზე ორიენტირებული პროგრამირების ენებით. ეს არის ცვლადი, რომელიც შეიძლება შეფასდეს მხოლოდ კოდის კონკრეტულ ბლოკში (მაგ. ფუნქცია, მარყუჟის ბლოკი და ა.შ.), რომელშიც ის არის განსაზღვრული. ამ მიზეზის გამო, ამბობენ, რომ ლოკალურ ცვლადებს აქვთ ადგილობრივი მასშტაბი.
რა არის ინსტანციის ცვლადი?
მაგალითის ცვლადები გამოიყენება ობიექტზე ორიენტირებულ პროგრამირებაში კლასში თითოეული ობიექტის მდგომარეობის შესანახად. ისინი ასევე ცნობილია როგორც წევრი ცვლადები ან ველის ცვლადები. ინსტანციის ცვლადები გამოცხადებულია Java-ში სტატიკური საკვანძო სიტყვის გამოყენების გარეშე. ინსტანციის ცვლადებში შენახული მნიშვნელობები უნიკალურია თითოეული ობიექტისთვის (თითოეულ ობიექტს აქვს ცალკე ასლი) და მათში შენახული მნიშვნელობები წარმოადგენს ამ ობიექტის მდგომარეობას. მაგალითად, ცვლადის სივრცე გამოყოფილია გროვაში, როდესაც ეს ობიექტი გამოყოფილია გროვაში. ამიტომ, ინსტანციის ცვლადები ინახება მეხსიერებაში, სანამ ობიექტი ცოცხალია. მაგალითად, ერთი მანქანის ფერი დამოუკიდებელია სხვა მანქანის ფერისგან. ასე რომ, მანქანის ობიექტის ფერი შეიძლება შენახული იყოს ინსტანციის ცვლადში. პრაქტიკაში, ინსტანციის ცვლადები გამოცხადებულია კლასების შიგნით და მეთოდების გარეთ. ჩვეულებრივ, ინსტანციის ცვლადები დეკლარირებულია როგორც კერძო ისე, რომ მათზე წვდომა მხოლოდ იმ კლასის ფარგლებშია შესაძლებელი.
რა არის ლოკალური ცვლადი?
ლოკალური ცვლადები არის ცვლადები, რომლებსაც აქვთ ლოკალური ფარგლები და ისინი გამოცხადებულია კონკრეტული კოდის ბლოკში. ლოკალური ცვლადები შეიძლება ჩაითვალოს ცვლადებად, რომლებიც გამოიყენება მეთოდით მისი დროებითი მდგომარეობის შესანახად. ლოკალური ცვლადის ფარგლები განისაზღვრება ცვლადის დეკლარირებული მდებარეობის გამოყენებით და ამ მიზნით არ გამოიყენება სპეციალური საკვანძო სიტყვები. როგორც წესი, ლოკალურ ცვლადზე წვდომა შეზღუდულია კოდის ბლოკში, რომელიც ის არის დეკლარირებული (ანუ ამ კოდის ბლოკის გახსნისა და დახურვის ფრჩხილებს შორის). ლოკალური ცვლადები, როგორც წესი, ინახება ზარის დასტაში. ეს საშუალებას მისცემს რეკურსიული ფუნქციის ზარებს შეინარჩუნონ ადგილობრივი ცვლადების საკუთარი ასლები, რომლებიც ინახება მეხსიერების მისამართების ცალკეულ სივრცეებში. როდესაც მეთოდი დაასრულებს თავის შესრულებას, ინფორმაცია ამ მეთოდის შესახებ გამოდის ზარის დასტადან, ასევე ანადგურებს შენახულ ლოკალურ ცვლადებს.
რა განსხვავებაა ინსტანციის ცვლადსა და ლოკალურ ცვლადს შორის?
ინსტანციის ცვლადები დეკლარირებულია კლასებში, მეთოდების გარეთ და ისინი ინახავს ობიექტის მდგომარეობას, ხოლო ლოკალური ცვლადები გამოცხადებულია კოდის ბლოკებში და ისინი გამოიყენება მეთოდის მდგომარეობის შესანახად.ინსტანციის ცვლადი ცოცხალია მანამ, სანამ ობიექტი, რომელიც შეიცავს ამ ცვლადს, ცოცხალია, ხოლო ლოკალური ცვლადი ცოცხალია ამ მეთოდის/კოდის ბლოკის შესრულებისას. ინსტანციის ცვლადი (რომელიც გამოცხადებულია საჯარო) შეიძლება იყოს წვდომა კლასში, ხოლო ლოკალურ ცვლადზე წვდომა შესაძლებელია მხოლოდ კოდის ბლოკში, რომელიც ის არის გამოცხადებული. ინსტანციის ცვლადების გამოყენება შემოიფარგლება მხოლოდ ობიექტზე ორიენტირებული პროგრამირებით, ხოლო ლოკალურ ცვლადებს არ აქვთ ასეთი შეზღუდვა.