Exemplaarvariabele versus lokale variabele
Een instantievariabele is een type variabele dat aanwezig is in objectgeoriënteerd programmeren. Het is een variabele die in een klasse is gedefinieerd en elk object van die klasse bevat een afzonderlijke kopie van die variabele. Aan de andere kant is het gebruik van lokale variabelen niet beperkt tot objectgeoriënteerde programmeertalen. Het is een variabele die alleen kan worden beoordeeld binnen een bepaald codeblok (bijvoorbeeld functie, lusblok, enz.) Waarin het is gedefinieerd. Om deze reden zouden lokale variabelen een lokale scope hebben.
Wat is een instance-variabele?
Exemplaarvariabelen worden gebruikt in objectgeoriënteerd programmeren voor het opslaan van de status van elk object in een klasse. Ze zijn ook bekend als ledvariabelen of veldvariabelen. Exemplaarvariabelen worden gedeclareerd zonder gebruik van het statische sleutelwoord in Java. De waarden die zijn opgeslagen in instantievariabelen zijn uniek voor elk object (elk object heeft een afzonderlijke kopie) en de waarden die daarin zijn opgeslagen, vertegenwoordigen de status van dat object. Ruimte voor een instantievariabele wordt in de heap toegewezen, wanneer dat object in de heap wordt toegewezen. Daarom worden instantievariabelen in het geheugen bewaard zolang het object actief is. Kleur van een auto is bijvoorbeeld onafhankelijk van de kleur van een andere auto. Dus de kleur van een auto-object kan worden opgeslagen in een instantievariabele. In de praktijk worden instantievariabelen gedeclareerd in klassen en externe methoden. Meestal worden instantievariabelen gedeclareerd als privé, zodat ze alleen toegankelijk zijn binnen de klasse die ze hebben gedeclareerd.
Wat is een lokale variabele?
Lokale variabelen zijn variabelen met een lokaal bereik en worden gedeclareerd binnen een specifiek codeblok. Lokale variabelen kunnen worden gezien als variabelen die worden gebruikt door een methode om de tijdelijke status op te slaan. Het bereik van een lokale variabele wordt bepaald op basis van de locatie die de variabele wordt gedeclareerd en speciale zoekwoorden worden niet voor dit doel gebruikt. Gewoonlijk is de toegang tot een lokale variabele beperkt binnen het codeblok dat wordt gedeclareerd (dat wil zeggen, tussen de openings- en sluitende accolades van dat codeblok). Lokale variabelen worden meestal opgeslagen in de oproepstack. Dit zou het mogelijk maken dat recursieve functieaanroepen hun eigen kopieën van de lokale variabelen behouden om te worden opgeslagen in afzonderlijke geheugenadresruimten. Wanneer de methode de uitvoering voltooit, wordt informatie over die methode uit de call stack gehaald en worden ook de lokale variabelen vernietigd die zijn opgeslagen.
Wat is het verschil tussen Exemplaarvariabele en Lokale variabele?
Exemplaarvariabelen worden gedeclareerd binnen klassen buiten de methoden om, en ze slaan de status van een object op, terwijl lokale variabelen worden gedeclareerd binnen codeblokken en ze worden gebruikt voor het opslaan van de status van een methode. Een instantievariabele is live zolang het object dat die variabele bevat live is, terwijl een lokale variabele live is tijdens de uitvoering van dat methode / codeblok. Een instantievariabele (die publiekelijk wordt verklaard) is toegankelijk binnen de klasse, terwijl een lokale variabele alleen toegankelijk is binnen het codeblok dat is gedeclareerd. Het gebruik van instantievariabelen is alleen beperkt tot objectgeoriënteerd programmeren, terwijl lokale variabelen niet zo'n beperking hebben.