Forskellen mellem instansvariabel og lokal variabel

Forskellen mellem instansvariabel og lokal variabel
Forskellen mellem instansvariabel og lokal variabel

Video: Forskellen mellem instansvariabel og lokal variabel

Video: Forskellen mellem instansvariabel og lokal variabel
Video: TEMA: Veninde konflikt i børnehave 2024, November
Anonim

Forekomstvariabel vs lokal variabel

En instansvariabel er en type variabel, der er til stede i objektorienteret programmering. Det er en variabel, der er defineret i en klasse, og hvert objekt i den klasse har en separat kopi af den variabel. På den anden side er brugen af lokale variabler ikke begrænset til objektorienterede programmeringssprog. Det er en variabel, der kun kan vurderes inden for en bestemt kodeblok (f.eks. funktion, sløjfeblok osv.), hvori den er defineret. Af denne grund siges lokale variabler at have et lok alt omfang.

Hvad er en instansvariabel?

Forekomstvariabler bruges i objektorienteret programmering til lagring af tilstanden for hvert objekt i en klasse. De er også kendt som medlemsvariabler eller feltvariabler. Forekomstvariabler erklæres uden brug af det statiske nøgleord i Java. Værdierne, der er gemt i instansvariabler, er unikke for hvert objekt (hvert objekt har en separat kopi), og de værdier, der er gemt i dem, repræsenterer det pågældende objekts tilstand. Plads til en instansvariabel allokeres i heapen, når det objekt er allokeret i heapen. Derfor opbevares instansvariabler i hukommelsen, så længe objektet er live. For eksempel er farven på en bil uafhængig af farven på en anden bil. Så farven på et bilobjekt kan gemmes i en instansvariabel. I praksis er instansvariabler erklæret inde i klasser og udenfor metoder. Norm alt er instansvariabler erklæret som private, så de kun kunne tilgås inden for den klasse, den er erklæret.

Hvad er en lokal variabel?

Lokale variabler er variabler med et lok alt omfang, og de erklæres inden for en specifik kodeblok. Lokale variabler kan ses som variabler, der bruges af en metode til at gemme dens midlertidige tilstand. Omfanget af en lokal variabel bestemmes ud fra det sted, hvor variablen er erklæret, og specielle nøgleord bruges ikke til dette formål. Typisk er adgangen til en lokal variabel begrænset inden for den kodeblok, som den er deklareret (dvs. mellem åbnings- og lukkeparenteserne for den pågældende kodeblok). Lokale variabler gemmes typisk i opkaldsstakken. Dette ville gøre det muligt for rekursive funktionskald at opretholde deres egne kopier af de lokale variabler til at blive lagret i separate hukommelsesadresserum. Når metoden afslutter sin eksekvering, bliver information om metoden poppet ud fra opkaldsstakken, hvilket også ødelægger de lokale variabler, der blev gemt.

Hvad er forskellen mellem Instance Variable og Local Variable?

Forekomstvariabler erklæres inden for klasser uden for metoder, og de lagrer et objekts tilstand, mens lokale variabler erklæres inden for kodeblokke, og de bruges til at gemme en metodes tilstand. En instansvariabel er live, så længe objektet, der indeholder den variabel, er live, mens en lokal variabel er live under udførelsen af den pågældende metode/kodeblok. En instansvariabel (som er erklæret offentlig) kan tilgås inden for klassen, hvorimod en lokal variabel kun kan tilgås inden for den kodeblok, som den er erklæret. Brug af instansvariabler er kun begrænset til objektorienteret programmering, mens lokale variabler ikke har en sådan begrænsning.

Anbefalede: