რა განსხვავებაა მაგალითად და სტატიკურ ცვლადებს შორის შესაფერისი მაგალითით (პროგრამით)?


პასუხი 1:

ყველამ ლამაზი მაგალითები და ახსნა მისცა. მე გავაგრძელებ ერთს:

ინსტალაციის ცვლადი არის კლასის ყველა ობიექტის (მაგალითად) საკუთრება.

სტატიკური ცვლადები თავად კლასის კლასის საკუთრებაა და არ მიეკუთვნება ამ კლასის სპეციფიკურ ობიექტს (მაგალითად).

შედარება და განსხვავება:

  1. კლასის დატვირთვისას სტატიკური ცვლადები ინიცირდება. საგნები ობიექტებზე. სტატიკური ცვლადი შეგიძლიათ მიიღოთ კლასის სახელის მეშვეობით. მაგალითად, უნდა შეიქმნას ცვლადი ობიექტი, რომლის წვდომა მხოლოდ ობიექტის საშუალებით შეიძლება. მაგალითი

სინტაქსი შეიძლება განსხვავდებოდეს ენიდან სხვა ენაზე

Class_A :: staticVariable // შესვლა

ObjClass_A = ახალი კლასი_A

ObjClass_A.instantVariable

3. სტატიკური ცვლადების ინიციალიზაცია შესაძლებელია ერთხელ. ეს არის ძირითადი კონცეფცია სინგლტონის ნიმუში.

4. სტატიკური ცვლადები არ შეიძლება იყოს ინტერფეისის ნაწილი აბსტრაქტული კლასებისთვის, რადგან მათ არ აქვთ გამოყოფილი მეხსიერება.



პასუხი 2:

ინსტალაციის ცვლადი არის კლასის ყველა ობიექტის (მაგალითად) საკუთრება.

სტატიკური ცვლადები თავად კლასის კლასის საკუთრებაა და არ მიეკუთვნება ამ კლასის სპეციფიკურ ობიექტს (მაგალითად).

-

მაგალითად:

კლასის თანამშრომელი {შეტყობინების სტატიკური ინტონაციაCount = 0; პირადი სიმებიანი empName; private int empId; // საჯარო მუშაკის დიზაინერი (სიმებიანი eName, int eId) {this.empName = eName; this.empId = eId; თანამშრომელიCount ++; } საჯარო მოსამსახურის დამატებაEmployee (სტრიქონის სახელი, int eId) {დააბრუნოს ახალი თანამშრომელი (eName, eId); } საჯარო ბათილად წაშლა თანამშრომელი (int eId) employees თანამშრომელთა რაოდენობა -; } public int getEmployeeCount () {დასაქმებული დასაბრუნებელი რაოდენობა; }

ამ მარტივი მაგალითით, StaffCount არის სტატიკური ცვლადი, რომელიც მიუთითებს დასაქმებულთა ამჟამინდელ რაოდენობაზე. დასაქმებულთა რაოდენობა მხოლოდ გაიზრდება ან შემცირდება, თუ ჩვენ დავამატებთ ან წაშლით თანამშრომელს.

EmpName და empId მაგალითად ცვლადია, რადგან ისინი ერთვის თანამშრომლის ობიექტებს და სასურველია განსხვავებული იყოს თითოეული ობიექტისთვის.

ამიტომ, ცვლადები, რომლებიც ვრცელდება ყველა ობიექტზე, უნდა იყოს სტატიკური ცვლადი, წინააღმდეგ შემთხვევაში ის უნდა იყოს მაგალითად ცვლადი.



პასუხი 3:

ინსტალაციის ცვლადი არის კლასში განსაზღვრული წევრის ცვლადი, ხოლო თითოეულ ინსტანციას (ამ კლასის ობიექტი) აქვს ცალკე ასლი. ეს მეხსიერებაში რჩება, სანამ ობიექტი არსებობს.

კლასის ტესტი {სიმებიანი აბკ; }

ზემოაღნიშნულის შესამოწმებლად, საჭიროა დაუყოვნებლივ შემოწმება ტესტის კლასს

ტესტი t = ახალი ტესტი (); t.abc = "გამარჯობა სამყარო". ტესტი t1 = ახალი ტესტი (); t1.abc = "მისასალმებელი" ტესტი t2 = ახალი ტესტი (); t2.abc = "ტესტი";

თუ ზემოთ მოცემულ მაგალითს ხედავთ, ჩვენ გვაქვს კლასის Test 3 ობიექტი, t, t1 და t2, თითოეულს აქვს თავისი ეგზემპლარი მაგალითად ცვლადი abc და ინახება სხვადასხვა ადგილას.

სტატიკური ცვლადები ენიჭება კლასს, და არა ობიექტს. მათ აქვთ მეხსიერებაში ფიქსირებული ადგილმდებარეობა, რომელზეც მითითებულია კლასის სახელი.

კლასის ტესტი {სიმებიანი აბკ; სტატიკური მთელი რიცხვი = 0; }

თქვენ არ გჭირდებათ გამოცდის დაუყოვნებლივი შემოწმება მრიცხველის ცვლასთან შესასვლელად. თქვენ უბრალოდ მიაღწიეთ მას, როგორც

ტესტი.კარდი = 1;

ზოგადად, თუ გსურთ, სტატიკური ცვლადები გამოიყენება



პასუხი 4:

დამატებითი ინფორმაციისთვის და ნიმუშის კოდისთვის შეგიძლიათ წაიკითხოთ ამ ტიპის კითხვები

ინსტალაციის ცვლადი - კლასში გამოცხადებული ცვლადი, მაგრამ მეთოდის მიღმა, ეწოდება მაგალითად ცვლადი. იგი არ არის გამოცხადებული როგორც სტატიკური.

სტატიკური ცვლადი - სტატიკურად გამოცხადებულ ცვლადს უწოდებენ სტატიკურ ცვლას. ეს არ შეიძლება იყოს ადგილობრივი, იგი არ არის რომელიმე კონკრეტული ობიექტისთვის, არამედ მთელი კლასისთვის

კლასის ტესტი {int iv = 10; // მაგალითად ცვლადი სტატიკური int sv = 100; // სტატიკური ცვლადი არასწორი მეთოდი () {int lv = 50; // ადგილობრივი ცვლადი}}

დამატებითი ინფორმაციისთვის იხილეთ Java ცვლადი ტიპები