Java har mer än tre typer av variabler, men de kan i stort sett kategoriseras på flera sätt. Det finns inte en allmänt överenskommande uppsättning * tre * kategorier, men här är tre vanliga sätt att gruppera dem, var och en erbjuder ett något annorlunda perspektiv:
1. efter datatyp: Detta är den vanligaste kategoriseringen. Vi kan gruppera variabler i tre breda datatyper:
* primitiva datatyper: Dessa har enkla värden direkt. Exempel inkluderar `int '(heltal),` float' (flytande punktnummer), 'dubbel' (dubbel precision flytande punkt), 'char' (karaktär), 'boolean' (true/falsk), 'byte', 'kort', 'lång'.
* Referenstyper (objekt): Dessa har minnesadresser (referenser) som pekar på objekt lagrade någon annanstans i minnet. Exempel inkluderar `String ',' heltal, anpassade klasser och matriser.
* null: Detta är en speciell typ som indikerar frånvaron av ett värde. En variabel av vilken referenstyp som helst kan tilldelas `NULL '.
2. med omfattning (där de är tillgängliga): Här kan vi identifiera:
* Lokala variabler: Förklaras i en metod eller en kodblock. De är endast tillgängliga inom det specifika blocket.
* instansvariabler (medlemsvariabler): Förklaras i en klass men utanför alla metoder. De är associerade med varje instans (objekt) i klassen.
* klassvariabler (statiska variabler): Förklaras med hjälp av "statisk" -nyckelordet. De tillhör själva klassen, inte till enskilda objekt, och delas mellan alla fall.
3. med mutabilitet: Detta används mindre ofta för primär kategorisering men konceptuellt viktigt:
* oföränderliga variabler: Deras värde kan inte ändras efter att de initialiseras (t.ex. strängar är oföränderliga, även om strängreferenser kan ändra vad de pekar på).
* muterbara variabler: Deras värde kan modifieras efter initialisering (de flesta primitiva typer och objekt är muterbara).
* Effektivt oföränderligt: Variabler som är utformade för att verka oföränderliga, även om deras underliggande komponenter är muterbara. Detta involverar vanligtvis defensiv kopiering eller noggrant kontroll av åtkomst till modifierade komponenter.
Beroende på dina kriterier kan du därför välja tre olika grupperingar. Tillvägagångssättet "efter datatyp" är det oftast uppstår vid klassificering av variabler i inledande Java -material.