Koja je razlika između instancije i statičkih varijabli s prikladnim primjerom (programom)?


Odgovor 1:

Svi su dali lijep primjer i objašnjenja. Nastavit ću s jednim:

Promjenjiva instanca je svojstvo svakog objekta (instancije) klase.

Statička varijabla je svojstvo same klase i ne pripada nijednom određenom objektu (instanci) te klase.

Usporedba i kontrasta:

  1. Statičke varijable se inicijaliziraju u vrijeme učitavanja klase. Instanca kroz objekte. Statičkoj varijabli može se pristupiti pomoću naziva klase. Na primjer, varijabilni objekt mora biti kreiran i njemu se može pristupiti samo putem objekta. primjer

sintaksa se može razlikovati od jezika do jezika

Class_A :: staticVariable // može se pristupiti

ObjClass_A = nova Class_A

ObjClass_A.instanceVariable

3. Statička varijabla može se inicijalizirati jednom. Dakle, to je osnovni koncept u singleton uzorku.

4. Statička varijabla ne može biti dio sučelja za apstraktnu klasu, jer im memorija nije dodijeljena.



Odgovor 2:

Promjenjiva instanca je svojstvo svakog objekta (instancije) klase.

Statička varijabla je svojstvo same klase i ne pripada nijednom određenom objektu (instanci) te klase.

-

Primjer:

zaposlenik klase {
privatni statički int zaposlenikCount = 0;
private String empName;
private int empId;

//konstruktor
javni zaposlenik (string eName, int eId) {
this.empName = eName;
this.empId = eId;
EMPLOYEECOUNT ++;
}

javni Employee addEслуee (String eName, int eId) {
vratite novog zaposlenika (eName, eId);
}

javno nevažeće brisanje zaposlenika (int eId) {
employeeCount--;
}

javni int getE EmployeeCount () {
vratiti zaposleni račun;
}
}

U ovom jednostavnom primjeru EmployCount je statična varijabla koja daje trenutni broj zaposlenih; broj zaposlenih se povećava ili smanjuje samo ako zaposlenika dodamo ili izbrišemo.

EmpName i empId su varijable instance jer su pričvršćene na zaposlene objekte i po mogućnosti će biti različite za svaki objekt.

Dakle, varijable koje su zajedničke za sve objekte trebaju biti statičke varijable, u suprotnom čine je instančom varijablom.



Odgovor 3:

Promjena instancije je varijabla člana definirana u klasi, a svaka instanca (objekt te klase) ima svoju zasebnu kopiju. To ostaje u memoriji sve dok objekt postoji.

Klasa testa
{
Gudački abc;
}

Da biste pristupili gore navedenom morate instancirati klasu Test

Test t = novi test ();
t.abc = "Pozdrav svijetu".
Test t1 = novi test ();
t1.abc = "Dobrodošli"
Test t2 = novi test ();
t2.abc = "test";

Ako vidite gornji primjer, imamo 3 objekta klase Test, t, t1 i t2, a svaki ima vlastitu kopiju varijable instance abc i pohranjuje se na različitim memorijskim mjestima.

Statička varijabla s druge strane povezana je s klasom nego s objektom. Oni imaju jedno fiksno mjesto u memoriji, a na njega se upućuje pomoću klase.

Klasa testa
{
Gudački abc;
static int count = 0;
}

Sada, za pristup varijabli broja, ne morate instancirati test. Možete mu pristupiti jednostavno kao

Test.count = 1;

Ako želite, upotrebljavaju se statičke varijable



Odgovor 4:

Možete postaviti Google ovu vrstu pitanja radi više detalja i uzorka koda

Promjenjiva instanca - varijabla koja je deklarirana unutar klase, ali izvan metode, naziva se varijabla instance. Nije deklariran kao statičan.

Statička varijabla - varijabla koja je deklarirana kao statična naziva se statičkom varijablom. Ne može biti lokalno, ne odnosi se na bilo koji objekt čestica već na cijeli razred

klasa test {
int iv = 10; // varijabla instance
statička int sv = 100; // statička varijabla
void method () {
int lv = 50; // lokalna varijabla
}}

Za više detalja provjerite - Vrste varijabli Java