Forskel mellem instansvariabel og lokal variabel

Anonim

Instansvariabel 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 af denne klasse indeholder en separat kopi af denne 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 kodekæde (fx funktion, loopblok osv.), Hvori den er defineret. På grund af denne grund angives lokale variabler at have et lokalt anvendelsesområde.

Hvad er en instansvariabel?

Instansvariabler bruges i objektorienteret programmering til lagring af tilstanden for hvert objekt i en klasse. De er også kendt som medlemsvariabler eller feltvariabler. Instansvariabler erklæres uden at bruge det statiske søgeord i Java. Værdierne, der er gemt i instansvariabler, er unikke for hver objekt (hvert objekt har en separat kopi), og de lagrede værdier repræsenterer tilstanden for objektet. Plads til en instansvariabel er allokeret i bunken, når objektet er allokeret i bunken. Derfor er forekomstvariabler gemt i hukommelsen, så længe objektet er levende. F.eks. 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 eksempelvarianter erklæret inde i klasser og udenfor metoder. Normalt er eksempelvariabler erklæret som private, så de kun kunne nås inden for den klasse, de erklæres for.

Hvad er en lokal variabel?

Lokale variabler er variabler, der har et lokalt anvendelsesområde, og de er erklæret inden for en bestemt kodeblok. Lokale variabler kan ses som variabler, der bruges af en metode til at gemme sin midlertidige tilstand. Omfanget af en lokal variabel bestemmes ved hjælp af den placering, hvor variablen er angivet, og særlige søgeord anvendes ikke til dette formål. Typisk er adgangen til en lokal variabel begrænset inden for kodeblokken, som den er erklæret (f.eks. Mellem åbnings- og lukkebøjlerne i den pågældende kodeblok). Lokale variabler lagres typisk i opkaldsstakken. Dette ville muliggøre rekursive funktionsopkald for at opretholde deres egne kopier af de lokale variabler, der skal opbevares i separate hukommelsesadresserum. Når metoden afsluttes, udføres informationen om denne metode ud fra opkaldsstakken og ødelægger også de lokale variabler, der blev gemt.

Hvad er forskellen mellem instansvariabel og lokal variabel?

Instansvariabler erklæres inden for klasser uden for metoder, og de gemmer tilstanden for et objekt, mens lokale variabler er angivet inden for kodeblokke, og de bruges til lagring af tilstanden af ​​en metode.En instansvariabel er levende, så længe objektet, der indeholder denne variabel, er levende, mens en lokal variabel er levende under udførelsen af ​​den pågældende metode / kodeblok. En instansvariabel (der er erklæret offentlig) kan fås i klassen, mens en lokal variabel kun kan nås inden for den kodeblok, som den er erklæret. Anvendelse af instansvariabler er kun begrænset til objektorienteret programmering, mens lokale variabler ikke har en sådan begrænsning.