Wat is het verschil tussen instantie en statische variabelen met een geschikt voorbeeld (programma)?


Antwoord 1:

Allen hebben een mooi voorbeeld en uitleg gegeven. Ik zal doorgaan met een:

Exemplaarvariabele is eigenschap van elk object (exemplaar) van een klasse.

Statische variabele is eigendom van de klasse zelf en behoort niet tot een bepaald object (instantie) van die klasse.

Vergelijken en contrasteren:

  1. Statische variabelen worden geïnitialiseerd tijdens het laden van de klasse. Exemplaar door objecten. Statische variabele kan worden geopend met behulp van de klassenaam. Een variabel object moet bijvoorbeeld worden gemaakt en is alleen toegankelijk via het object. voorbeeld

syntaxis kan verschillen van taal tot taal

Class_A :: staticVariable // is toegankelijk

ObjClass_A = nieuwe Class_A

ObjClass_A.instanceVariable

3. Statische variabele kan eenmaal worden geïnitialiseerd. Het is dus een kernconcept in een singletonpatroon.

4. Statische variabele kan geen deel uitmaken van de interface voor abstracte klasse, omdat er geen geheugen aan is toegewezen.



Antwoord 2:

Exemplaarvariabele is eigenschap van elk object (exemplaar) van een klasse.

Statische variabele is eigendom van de klasse zelf en behoort niet tot een bepaald object (instantie) van die klasse.

-

Voorbeeld:

klasse Medewerker {
private statische int employeeCount = 0;
privé String empName;
privé int empId;

// constructor
public Employee (String eName, int eId) {
this.empName = eName;
this.empId = eId;
EMPLOYEECOUNT ++;
}

public Employee addEmployee (String eName, int eId) {
nieuwe medewerker retourneren (eName, eId);
}

public void deleteEmployee (int eId) {
employeeCount--;
}

public int getEmployeeCount () {
retour medewerkernummer;
}
}

In dit eenvoudige voorbeeld is employeeCount een statische variabele die het huidige aantal werknemers geeft; het aantal werknemers wordt alleen verhoogd of verlaagd als we een werknemer toevoegen of verwijderen.

De empName en empId zijn instantievariabele omdat ze zijn gekoppeld aan de werknemerobjecten en zullen bij voorkeur voor elk object verschillen.

De variabelen die voor alle objecten gelden, moeten dus een statische variabele zijn, anders moet het een instantievariabele zijn.



Antwoord 3:

Exemplaarvariabele is een lidvariabele die in de klasse is gedefinieerd en elke instantie (object van die klasse) heeft er een afzonderlijk exemplaar van. Dit blijft in het geheugen zolang het object bestaat.

Klasse test
{
String abc;
}

Om toegang te krijgen tot het bovenstaande moet u de klasse Test instantiëren

Test t = nieuwe test ();
t.abc = "Hallo wereld".
Test t1 = nieuwe test ();
t1.abc = "Welkom"
Test t2 = nieuwe test ();
t2.abc = "Test";

Als je nu het bovenstaande voorbeeld ziet, hebben we 3 objecten van klasse Test, t, t1 en t2, elk met een eigen kopie van de instantievariabele abc en opgeslagen op verschillende geheugenlocaties.

Statische variabelen zijn daarentegen geassocieerd met een klasse, dan met een object. Ze hebben één vaste locatie in het geheugen en er wordt naar verwezen met de klassenaam.

Klasse test
{
String abc;
statische int count = 0;
}

Om toegang te krijgen tot de telvariabele hoeft u Test niet direct te starten. Je hebt er eenvoudig toegang toe als

Test.count = 1;

Over het algemeen worden statische variabelen gebruikt, als u dat wilt



Antwoord 4:

U kunt dit soort vragen googleen voor meer informatie en voorbeeldcode

Instantievariabele - Een variabele die binnen de klasse maar buiten de methode wordt gedeclareerd, wordt instantievariabele genoemd. Het wordt niet als statisch verklaard.

Statische variabele - Een variabele die statisch wordt genoemd, wordt statische variabele genoemd. Het kan niet lokaal zijn, het is niet voor een bepaald object maar voor de hele klas

klassentest {
int iv = 10; // instantievariabele
statische int sv = 100; // statische variabele
void method () {
int lv = 50; // lokale variabele
}}

Voor meer informatie check - Java Variable Types