У чым розніца паміж экземплярамі і статычнымі пераменнымі ў прыдатным прыкладзе (праграме)?


адказ 1:

Усе давалі прыемныя прыклады і тлумачэнні. Я працягну з адным:

Пераменная экземпляра - гэта ўласцівасць кожнага аб'екта (асобніка) класа.

Статычныя зменныя з'яўляюцца ўласцівасцю самога класа і не належаць да канкрэтнага аб'екта (асобніка) гэтага класа.

Параўнайце і параўнайце:

  1. Статычныя зменныя ініцыялізуюцца пры загрузцы класа. Экземпляр над прадметамі. Даступ да статычнай зменнай можна атрымаць з дапамогай імя класа. Напрыклад, павінен быць створаны пераменны аб'ект, доступ да якога ажыццяўляецца толькі праз аб'ект. Прыклад

Сінтаксіс можа адрознівацца ад мовы да мовы

Class_A :: staticVariable // можна атрымаць доступ

ObjClass_A = новы Class_A

ObjClass_A.instanceVariable

3. Статычныя зменныя можна ініцыялізаваць адзін раз. Такім чынам, гэта асноўная канцэпцыя ў адзіночнай схеме.

4. Статычныя зменныя не могуць быць часткай інтэрфейсу для абстрактных класаў, паколькі ў іх не выдзелена памяць.



адказ 2:

Пераменная экземпляра - гэта ўласцівасць кожнага аб'екта (асобніка) класа.

Статычныя зменныя з'яўляюцца ўласцівасцю самога класа і не належаць да канкрэтнага аб'екта (асобніка) гэтага класа.

-

Напрыклад:

Супрацоўнік класа {private static int workerCount = 0; прыватная радок empName; private int empId; // канструктар грамадскага работніка (String eName, int eId) {this.empName = eName; this.empId = eId; супрацоўнік ++; } грамадскі супрацоўнік addEслух (String eName, int eId) {вярнуць новага супрацоўніка (eName, eId); } публічная несапраўдная deleteE Employee (int eId) {колькасць супрацоўнікаў--; } public int getEслуeeCount () {return workerCount; }}

У гэтым простым прыкладзе EmployCount - гэта статычная пераменная, якая паказвае бягучую колькасць супрацоўнікаў. Колькасць супрацоўнікаў будзе толькі павялічвацца або памяншацца, калі мы дадамо або выдалім супрацоўніка.

EmpName і empId - гэта зменныя асобнікі, паколькі яны прымацаваныя да аб'ектаў супрацоўніка і, пажадана, розныя для кожнага аб'екта.

Такім чынам, зменныя, якія прымяняюцца да ўсіх аб'ектаў, павінны быць статычнымі пераменнымі, інакш яны павінны быць зменнымі.



адказ 3:

Пераменная экземпляра - гэта пераменная члена, вызначаная ў класе, і кожны асобнік (аб'ект гэтага класа) мае асобную копію. Гэта застаецца ў памяці, пакуль аб'ект існуе.

Тэст класа {string abc; }

Каб атрымаць доступ да вышэйсказанага, вам неабходна стварыць тэст класа

Тэст t = новы тэст (); t.abc = "Прывітанне, свет". Тэст t1 = новы тэст (); t1.abc = "Сардэчна запрашаем" тэст t2 = новы тэст (); t2.abc = "тэст";

Калі вы бачыце прыведзены прыклад, у нас ёсць 3 аб'екты класа Test, t, t1 і t2, кожны з якіх мае ўласную копію зменнай асобніка abc і захоўваецца ў розных месцах.

З іншага боку, статычныя зменныя прысвойваюцца класу, а не аб'екту. Яны маюць фіксаванае месца ў памяці, на якое спасылаецца імя класа.

Тэст класа {string abc; статычнае цэлае лік = 0; }

Вам не прыйдзецца ствараць тэст, каб атрымаць доступ да зменнай лічыльніка. Вы проста дасягаеце гэтага

Test.count = 1;

Увогуле, пры жаданні выкарыстоўваюцца статычныя зменныя



адказ 4:

Для больш падрабязнай інфармацыі і ўзорнага кода вы можаце адправіць Google на дадзеныя пытанні

Пераменная экземпляра - Пераменная, аб'яўленая ўнутры класа, але па-за метадам, называецца пераменнай экземпляра. Ён не дэкларуецца як статычны.

Статычная пераменная - Пераменная, аб'яўленая статычнай, называецца статычнай. Гэта не можа быць лакальна, гэта не для канкрэтнага аб'екта, а для ўсяго класа

Тэст класа {int iv = 10; // пераменная экземпляр static int sv = 100; // Несапраўдны метад статычнай зменнай () {int lv = 50; // Лакальная зменная}}

Для атрымання дадатковай інфармацыі см тыпы зменных Java