ძირითადი განსხვავება - სტატიკური და ფინალი ჯავაში
თითოეულ პროგრამირების ენას აქვს კონკრეტული სინტაქსი. პროგრამისტმა უნდა დაიცვას ეს სინტაქსები პროგრამების წერისას. პროგრამირების ენების საკვანძო სიტყვებს ამოცანების მიხედვით აქვთ კონკრეტული მნიშვნელობა. ისინი მოწოდებულია პროგრამირების ენით და არ შეიძლება გამოყენებულ იქნას მომხმარებლის მიერ განსაზღვრული ცვლადებისთვის, მეთოდებისთვის, კლასებისთვის და ა.შ. სტატიკური და საბოლოო ორი საკვანძო სიტყვაა Java-ში. ეს სტატია განიხილავს განსხვავებას სტატიკური და საბოლოო ჯავაში. Java-ში სტატიკურსა და საბოლოოს შორის მთავარი განსხვავება ისაა, რომ სტატიკური გამოიყენება კლასის წევრის დასადგენად, რომელიც შეიძლება გამოყენებულ იქნას კლასის ნებისმიერი ობიექტისგან დამოუკიდებლად, ხოლო final გამოიყენება მუდმივი ცვლადის ან მეთოდის გამოსაცხადებლად, რომლის გადაფარვა შეუძლებელია ან კლასი, რომელიც არ შეიძლება იყოს მემკვიდრეობითი.
რა არის სტატიკური ჯავაში?
კლასი შედგება მონაცემთა წევრებისა (ატრიბუტები) და მეთოდებისგან. მეთოდების გამოსაძახებლად, უნდა არსებობდეს ამ კონკრეტული კლასის ობიექტი. როდესაც მეთოდი გამოცხადებულია როგორც სტატიკური, არ არის საჭირო ობიექტის შექმნა ამ მეთოდის გამოსაძახებლად. მეთოდის გამოძახება შესაძლებელია კლასის სახელის გამოყენებით. იხილეთ ქვემოთ მოცემული პროგრამა.
სურათი 01: Java პროგრამა სტატიკური ცვლადებით და სტატიკური მეთოდით
ზემოხსენებული პროგრამის მიხედვით, კლასი A შეიცავს რიცხვის ცვლადს და ჩვენების მეთოდს. ორივე სტატიკური წევრია. ამიტომ, არ არის აუცილებელი ობიექტის შექმნა რიცხვის ცვლადზე და ჩვენების მეთოდზე წვდომისთვის. პროგრამისტს შეუძლია პირდაპირ დაწეროს კლასის სახელი ნომრის დასაბეჭდად და მეთოდის ჩვენების გამოსაძახებლად. ასე რომ, არ არის საჭირო ობიექტის ინსტანცია.თუ რიცხვის ცვლადი და ჩვენების მეთოდი არასტატიკურია, მაშინ უნდა იყოს A ტიპის ობიექტი.
სურათი 02: სტატიკური ბლოკის გამოყენება
ზემოხსენებული პროგრამა შეიცავს სტატიკურ ბლოკს და ძირითად მეთოდს. სტატიკური ბლოკი გამოიძახება კლასის ჩატვირთვისას. მაშასადამე, განცხადება სტატიკურ ბლოკში შესრულებულია მთავარ ბლოკში განცხადებამდე. თუ ბევრი სტატიკური ბლოკია, ისინი შესრულდება თანმიმდევრობით.
რა არის საბოლოო ჯავაში?
პროგრამაში შეიძლება იყოს სხვადასხვა ტიპის ცვლადები. თუ არსებობს ცვლადი, როგორც int x=1; მოგვიანებით პროგრამაში, ეს ცვლადი მნიშვნელობა შეიძლება შეიცვალოს სხვა მნიშვნელობით. ცვლადი, რომელიც გამოცხადებულია საბოლოო და ინიციალიზებულია მნიშვნელობით, არ შეიძლება შეიცვალოს მოგვიანებით პროგრამაში.
სურათი 03: პროგრამა საბოლოო ცვლადით და მემკვიდრეობით
ზემოხსენებული პროგრამის მიხედვით, x არის საბოლოო ცვლადი. მას ენიჭება მნიშვნელობა 5. მისი სხვა მნიშვნელობის შეცვლა შეუძლებელია, რადგან ის გამოცხადებულია როგორც საბოლოო. ჯავა მხარს უჭერს ობიექტზე ორიენტირებულ პროგრამირებას (OOP). OOP-ის ერთი საყრდენი არის პოლიმორფიზმი. პოლიმორფიზმის ერთი სახეობა უმთავრესია. A კლასს აქვს ჩვენების მეთოდი. კლასი B აფართოებს A კლასს და მას აქვს საკუთარი ჩვენების მეთოდი. B ტიპის ობიექტის შექმნისას და ჩვენების მეთოდის გამოძახებისას გამომავალი სახით დაიბეჭდება "B". A კლასის ჩვენების მეთოდი უგულებელყოფილია B კლასის ჩვენების მეთოდით.
თუ პროგრამისტმა რა უნდა აარიდოს მეთოდს, მაშინ მას შეუძლია გამოიყენოს საბოლოო საკვანძო სიტყვა ამ მეთოდისთვის. თუ A კლასში ჩვენების მეთოდი საბოლოოა, B-ში ჩვენების მეთოდი მისცემს შეცდომას, რადგან ამ მეთოდის გაუქმება შეუძლებელია.
სურათი 04: საბოლოო საკვანძო სიტყვა მეთოდში
OOP-ის კიდევ ერთი საყრდენი არის მემკვიდრეობა. ეს ხელს უწყობს უკვე არსებული კოდის ხელახლა გამოყენებას. ახალი კლასი შეიძლება გავრცელდეს არსებული კლასიდან და გამოიყენოს არსებული კლასის მონაცემთა წევრები და მეთოდები. თუ საჭიროა კლასის მემკვიდრეობის შეწყვეტა, პროგრამისტს შეუძლია გამოიყენოს საკვანძო სიტყვა „ფინალი“. იხილეთ ქვემოთ მოცემული პროგრამა.
სურათი 05: საბოლოო საკვანძო სიტყვა კლასში
ზემოხსენებული პროგრამის მიხედვით A კლასი გამოცხადებულია საბოლოო. როდესაც B კლასი აფართოებს A, ის იძლევა შეცდომას, რადგან კლასი გამოცხადებულია საბოლოო. სხვა კლასების მიერ მისი მემკვიდრეობა შეუძლებელია.
რა მსგავსებაა სტატიკურსა და საბოლოოს შორის ჯავაში?
როგორც სტატიკური, ასევე საბოლოო არის საკვანძო სიტყვები ჯავაში
რა განსხვავებაა სტატიკურსა და საბოლოოს შორის Java-ში?
სტატიკური წინააღმდეგ ფინალი ჯავაში |
|
სტატიკური საკვანძო სიტყვა აღნიშნავს, რომ წევრი ცვლადის ან მეთოდის წვდომა შესაძლებელია იმ კლასის ინსტალაციის საჭიროების გარეშე, რომელსაც ეკუთვნის. | ბოლო საკვანძო სიტყვა აღნიშნავს ერთეულს, რომლის მინიჭება შესაძლებელია მხოლოდ ერთხელ. |
ცვლადები | |
სტატიკური ცვლადების ხელახლა ინიცირება შესაძლებელია. | ბოლო ცვლადების ხელახლა დაწყება შეუძლებელია. |
მეთოდები | |
შეიძლება გამოძახება სხვა სტატიკური მეთოდებით და მხოლოდ კლასის სტატიკურ წევრებზე წვდომა. | საბოლოო მეთოდების გაუქმება შეუძლებელია. |
კლასი | |
სტატიკური კლასის ობიექტის შექმნა შეუძლებელია. ის შეიცავს მხოლოდ სტატიკურ წევრებს. | საბოლოო კლასს არ შეუძლია სხვა კლასების მემკვიდრეობა. |
დაბლოკვა | |
სტატიკური საკვანძო სიტყვა შეიძლება გამოყენებულ იქნას ბლოკში. | ბოლო საკვანძო სიტყვა არ გამოიყენება ბლოკთან ერთად. |
შეჯამება - სტატიკური წინააღმდეგ ფინალი ჯავაში
ეს სტატია განიხილავდა ჯავას ორ საკვანძო სიტყვას, როგორიცაა სტატიკური და საბოლოო. Java-ში სტატიკურსა და საბოლოოს შორის განსხვავება არის ის, რომ static გამოიყენება კლასის წევრის დასადგენად, რომელიც შეიძლება გამოყენებულ იქნას კლასის ნებისმიერი ობიექტისგან დამოუკიდებლად, ხოლო final გამოიყენება მუდმივი ცვლადის ან მეთოდის გამოსაცხადებლად, რომლის გადაფარვა შეუძლებელია, ან კლასი, რომელიც არ შეიძლება. იყოს მემკვიდრეობითი.