För att förstå hur klasser, variabler och metoder fungerar i Java är det avgörande att förstå begreppen statisk och icke-statisk. Icke-statiska medlemmar är länkade till specifika klassinstanser, medan statiska medlemmar är kopplade till klassen. I det här avsnittet kommer vi att kontrastera statiska kontra icke-statiska Java-komponenter, och lyfta fram deras skillnader och potentiella tillämpningar.
Associerad med
Statisk: Statiska medlemmar (variabler och metoder) är associerade med själva klassen snarare än med enskilda instanser.
Icke-statisk: Icke-statiska medlemmar är specifika för varje instans av en klass, eftersom de är knutna till objekt skapade från klassen.
755 chmod
Minnesallokering
Statisk: Statiska medlemmar tilldelas minne endast en gång, vid tidpunkten för klassladdning. De delas mellan alla instanser i klassen.
Icke-statisk: Icke-statiska medlemmar har minne tilldelat separat för varje instans av klassen. Varje objekt har sin egen kopia av icke-statiska medlemmar.
Åtkomst
Statisk: Statiska medlemmar kan nås direkt med hjälp av klassnamnet följt av medlemsnamnet (t.ex. ClassName.memberName). De är tillgängliga från var som helst i programmet.
Icke-statisk: Icke-statiska medlemmar nås med hjälp av en objektreferens följt av medlemsnamnet (t.ex. objectReference.memberName). De är specifika för en viss instans av klassen.
stränghantering i c++
Initialisering
Statisk: Statiska medlemmar initieras när klassen laddas in i minnet, vanligtvis under programstart. Initiering sker bara en gång.
Icke-statisk: Icke-statiska medlemmar initieras när varje instans av klassen skapas, vanligtvis med det nya nyckelordet. Initiering sker separat för varje objekt.
Omfattning
Statisk: Statiska medlemmar har en global räckvidd och kan nås från var som helst i programmet, även utan att skapa en instans av klassen.
Icke-statisk: Icke-statiska medlemmar har ett lokalt omfattning och kan endast nås via en instans av klassen. De är inte tillgängliga utan att skapa ett objekt.
Tillgång till medlemmar
Statisk: Statiska medlemmar kan bara komma åt andra statiska medlemmar inom samma klass. De kan inte direkt komma åt icke-statiska medlemmar.
Icke-statisk: Icke-statiska medlemmar kan komma åt både statiska och icke-statiska medlemmar inom samma klass. De har direkt tillgång till alla medlemmar.
Användande
Statisk: Statiska medlemmar används vanligtvis för verktygsmetoder, konstanter eller variabler som inte är specifika för enskilda instanser. Till exempel en matematikklass som innehåller matematiska funktioner.
tom lista java
Icke-statisk: Icke-statiska medlemmar används för instansspecifikt beteende, eftersom de innehåller data som är specifik för varje objekt. Till exempel instansvariabler som lagrar unika värden för varje objekt.
Minneseffektivitet
Statisk: Statiska medlemmar förbrukar minne endast en gång, oavsett antalet skapade instanser. De kan vara minneseffektiva när samma data måste delas mellan alla objekt.