Verschil tussen instantie variabele en lokale variabele

Anonim

Instantievariabele versus Lokale variabele

Een instantievariabele is een type variabele die aanwezig is in objectgerichte programmering. Het is een variabele die is gedefinieerd in een klasse, en elk object van die klasse heeft een aparte kopie van die variabele. Aan de andere kant is het gebruik van lokale variabelen niet beperkt tot object georiënteerde programmeer talen. Het is een variabele die alleen kan worden beoordeeld binnen een bepaald blok van code (bijvoorbeeld functie, loopblok, enz.) Waarin het is gedefinieerd. Om deze reden worden lokale variabelen gezegd dat ze een lokale reikwijdte hebben.

Wat is een instantie variabele?

Instantievariabelen worden gebruikt in objectgeoriënteerde programmering om de status van elk object in een klasse op te slaan. Ze staan ​​ook bekend als lidvariabelen of veldvariabelen. Instantievariabelen worden verklaard zonder het statische zoekwoord in Java te gebruiken. De waarden die zijn opgeslagen in variabelen, zijn uniek voor elk object (elk object heeft een aparte kopie) en de waarden die zijn opgeslagen in deze, vertegenwoordigen de toestand van dat object. De ruimte voor een instantievariabele wordt toegewezen in de hoop, wanneer dat object in de hoop wordt toegewezen. Daarom worden bijbehorende variabelen in het geheugen gehouden, zolang het object levend is. De kleur van een auto is bijvoorbeeld onafhankelijk van de kleur van een andere auto. Zo kan de kleur van een autoobject opgeslagen worden in een instantievariabele. In de praktijk worden bijvoorbeeld variabelen in klassen en buiten de methoden aangegeven. Gewoonlijk worden exemplaarvariabelen als privé verklaard, zodat ze alleen binnen de les kunnen worden aangemerkt.

Wat is een Local Variable?

Lokale variabelen zijn variabelen die een lokale reikwijdte hebben, en worden aangegeven binnen een specifiek codeblok. Lokale variabelen kunnen worden gezien als variabelen die worden gebruikt door een methode om de tijdelijke toestand op te slaan. Omvang van een lokale variabele wordt bepaald met behulp van de locatie waar de variabele is aangegeven, en hiervoor worden geen speciale zoekwoorden gebruikt. Typisch is de toegang tot een lokale variabele beperkt binnen het codeblok dat het wordt verklaard (bijvoorbeeld tussen de openings- en sluitbeugels van dat codeblok). Lokale variabelen worden typisch opgeslagen in de call stack. Dit zou recursieve functieoproepen mogelijk maken om hun eigen kopieën van de lokale variabelen te behouden die in afzonderlijke geheugenadresruimten moeten worden opgeslagen. Wanneer de methode de uitvoering voltooit, wordt informatie over die methode uit de oproepstapel uitgestoken, en ook de lokale variabelen die zijn opgeslagen, vernietigd.

Wat is het verschil tussen Instantie Variabele en Lokale Variabele?

Instantievariabelen worden aangegeven binnen klassen buiten de methoden, en ze bewaren de toestand van een object, terwijl lokale variabelen worden aangegeven binnen de codeblokken en worden gebruikt voor het opslaan van de toestand van een methode.Een instantievariabele is levend, zolang het object dat die variabele bevat, live is, terwijl een lokale variabele is tijdens de uitvoering van die methode / codeblok. Een instantievariabele (die openbaar wordt verklaard) is toegankelijk binnen de klas, terwijl een lokale variabele alleen toegankelijk is binnen het codeblok dat het wordt aangegeven. Gebruik van instantievariabelen is alleen beperkt tot objectgerichte programmering, terwijl lokale variabelen niet zo'n beperking hebben.