Forskjell mellom instansvariabel og lokal variabel

Anonim

Instansvariabel mot lokal variabel

En instansvariabel er en type variabel som er tilstede i objektorientert programmering. Det er en variabel som er definert i en klasse, og hvert objekt av denne klassen har en separat kopi av denne variabelen. På den annen side er bruken av lokale variabler ikke begrenset til objektorienterte programmeringsspråk. Det er en variabel som kun kan vurderes innenfor en bestemt blokk med kode (f.eks. Funksjon, sløyfe blokk, etc.) der den er definert. På grunn av dette er det sagt at lokale variabler har et lokalt omfang.

Hva er en instansvariabel?

Instansvariabler brukes i objektorientert programmering for å lagre tilstanden til hvert objekt i en klasse. De er også kjent som medlemsvariabler eller feltvariabler. Instansvariabler er deklarert uten å bruke det statiske søkeordet i Java. Verdiene lagret i forekomstvariabler er unike for hver gjenstand (hver gjenstand har en separat kopi), og verdiene som er lagret i dem, representerer tilstanden til objektet. Plass for en instansvariabel er allokert i bunken, når objektet er allokert i bunken. Derfor blir forekomstvariabler lagret i minnet så lenge objektet er levende. F.eks. Er fargen på en bil uavhengig av fargen til en annen bil. Så fargen på et bilobjekt kan lagres i en instansvariabel. I praksis er eksempelvariable deklarert innenfor klasser og utenfor metoder. Vanligvis er instansvariabler deklarert som private, slik at de kun kunne nås i løpet av klassen deklareres.

Hva er en lokal variabel?

Lokale variabler er variabler som har et lokalt omfang, og de er deklarert innenfor en bestemt kodeblokk. Lokale variabler kan sees som variabler som brukes av en metode for å lagre sin midlertidige tilstand. Omfanget av en lokal variabel bestemmes ved hjelp av plasseringen som variabelen er deklarert, og spesielle søkeord brukes ikke til dette formålet. Vanligvis er tilgang til en lokal variabel begrenset innenfor kodeblokken som den er erklært (f.eks. Mellom åpnings- og lukkebøylene i den kodeblokken). Lokale variabler lagres vanligvis i samtalestakken. Dette vil tillate rekursive funksjonssamtaler for å opprettholde sine egne kopier av de lokale variablene som skal lagres i separate minnesadresserom. Når metoden fullfører sin utførelse, blir informasjon om den metoden dukket opp fra anropsstakken, og ødelegger også de lokale variablene som ble lagret.

Hva er forskjellen mellom instansvariabel og lokal variabel?

Instansvariabler er deklarert i klasser utenfor metoder, og de lagrer tilstanden til et objekt, mens lokale variabler er deklarert innenfor kodeblokker, og de brukes til lagring av tilstanden til en metode.En instansvariabel er aktiv så lenge objektet som inneholder den variabelen, er live, mens en lokal variabel er levende under utførelsen av denne metoden / kodeblokken. En instansvariabel (som er erklært offentlig) kan nås i klassen, mens en lokal variabel kun kan nås i kodeblokken som den er erklært. Bruk av instansvariabler er bare begrenset til objektorientert programmering, mens lokale variabler ikke har en slik begrensning.