en variabel giver os navngivet opbevaring, som vores programmer kan manipulere. Hver variabel i Java har en bestemt type, der bestemmer størrelsen og layoutet af variabelens hukommelse; rækkevidden af værdier, der kan gemmes i denne hukommelse; og det sæt operationer, der kan anvendes på variablen.
Du skal erklære alle variabler, før de kan bruges. Følgende er den grundlæggende form for en variabel erklæring −
data type variable ...] ;
Her datatype er en af Java datatyper og variabel er navnet på variablen. For at erklære mere end en variabel af den angivne type kan du bruge en kommasepareret liste.
Følgende er gyldige eksempler på variabel erklæring og initialisering i Java −
eksempel
int a, b, c; // Declares three ints, a, b, and c.int a = 10, b = 10; // Example of initializationbyte B = 22; // initializes a byte type variable B.double pi = 3.14159; // declares and assigns a value of PI.char a = 'a'; // the char variable a iis initialized with value 'a'
dette kapitel forklarer forskellige variabeltyper, der er tilgængelige på Java-sprog. Der er tre slags variabler i Java-
- lokale variabler
- instansvariabler
- klasse/statiske variabler
lokale variabler
-
lokale variabler erklæres i metoder, konstruktører eller blokke.
-
lokale variabler oprettes, når metoden, konstruktøren eller blokken indtastes, og variablen ødelægges, når den forlader metoden, konstruktøren eller blokken.
-
adgangsmodifikatorer kan ikke bruges til lokale variabler.
-
lokale variabler er kun synlige inden for den deklarerede metode, konstruktør eller blok.
-
lokale variabler implementeres internt på stakniveau.
-
Der er ingen standardværdi for lokale variabler, så lokale variabler skal deklareres, og en startværdi skal tildeles inden første brug.
eksempel
Her er alder en lokal variabel. Dette er defineret inde pupAge() metode og dens anvendelsesområde er begrænset til kun denne metode.
public class Test { public void pupAge() { int age = 0; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args) { Test test = new Test(); test.pupAge(); }}
Dette vil producere følgende resultat −
Output
Puppy age is: 7
eksempel
følgende eksempel bruger alder uden at initialisere det, så det ville give en fejl på tidspunktet for kompilering.
public class Test { public void pupAge() { int age; age = age + 7; System.out.println("Puppy age is : " + age); } public static void main(String args) { Test test = new Test(); test.pupAge(); }}
Dette vil producere følgende fejl under kompilering −
Output
Test.java:4:variable number might not have been initializedage = age + 7; ^1 error
instansvariabler
-
instansvariabler erklæres i en klasse, men uden for en metode, konstruktør eller en hvilken som helst blok.
-
når der tildeles et mellemrum til et objekt i bunken, oprettes en plads til hver instansvariabelværdi.
-
instansvariabler oprettes, når et objekt oprettes ved hjælp af nøgleordet ‘ny’ og ødelægges, når objektet ødelægges.
-
instansvariabler indeholder værdier, der skal refereres til ved hjælp af mere end en metode, konstruktør eller blok eller væsentlige dele af et objekts tilstand, der skal være til stede i hele klassen.
-
instansvariabler kan deklareres på klasseniveau før eller efter brug.
-
adgangsmodifikatorer kan f.eks. gives variabler.
-
instansvariablerne er synlige for alle metoder, konstruktører og blokke i klassen. Normalt anbefales det at gøre disse variabler private (adgangsniveau). Imidlertid kan synlighed for underklasser gives for disse variabler ved brug af adgangsmodifikatorer.
-
instansvariabler har standardværdier. For tal er standardværdien 0, for Booleans er den falsk, og for objektreferencer er den null. Værdier kan tildeles under erklæringen eller inden for konstruktøren.
-
instansvariabler kan fås direkte ved at kalde variabelnavnet inde i klassen. Men inden for statiske metoder (når instansvariabler gives tilgængelighed), skal de kaldes ved hjælp af det fuldt kvalificerede navn. ObjectReference.VariableName.
eksempel
import java.io.*;public class Employee { // this instance variable is visible for any child class. public String name; // salary variable is visible in Employee class only. private double salary; // The name variable is assigned in the constructor. public Employee (String empName) { name = empName; } // The salary variable is assigned a value. public void setSalary(double empSal) { salary = empSal; } // This method prints the employee details. public void printEmp() { System.out.println("name : " + name ); System.out.println("salary :" + salary); } public static void main(String args) { Employee empOne = new Employee("Ransika"); empOne.setSalary(1000); empOne.printEmp(); }}
dette vil producere følgende resultat −
Output
name : Ransikasalary :1000.0
klasse/statiske variabler
-
Klassevariabler, der også er kendt som statiske variabler, deklareres med de statiske variabler, der er statisk søgeord i en klasse, men uden for en metode, konstruktør eller en blok.
-
der ville kun være en kopi af hver klassevariabel pr.
-
statiske variabler anvendes sjældent andet end at blive erklæret som konstanter. Konstanter er variabler, der erklæres som offentlige / private, endelige og statiske. Konstante variabler ændres aldrig fra deres oprindelige værdi.
-
statiske variabler gemmes i den statiske hukommelse. Det er sjældent at bruge andre statiske variabler end erklæret endelige og bruges som enten offentlige eller private konstanter.
-
statiske variabler oprettes, når programmet starter og ødelægges, når programmet stopper.
-
synlighed ligner instansvariabler. De fleste statiske variabler erklæres imidlertid offentlige, da de skal være tilgængelige for brugere af klassen.
-
standardværdier er de samme som instansvariabler. For tal er standardværdien 0; for Booleans er den falsk; og for objektreferencer er den null. Værdier kan tildeles under erklæringen eller inden for konstruktøren. Derudover kan værdier tildeles i specielle statiske initialiseringsblokke.
-
statiske variabler kan fås ved at ringe med klassenavnet ClassName.VariableName.
-
Når du erklærer klassevariabler som offentlig statisk endelig, er variabelnavne (konstanter) alle med store bogstaver. Hvis de statiske variabler ikke er offentlige og endelige, er navngivningssyntaksen den samme som forekomst og lokale variabler.
eksempel
import java.io.*;public class Employee { // salary variable is a private static variable private static double salary; // DEPARTMENT is a constant public static final String DEPARTMENT = "Development "; public static void main(String args) { salary = 1000; System.out.println(DEPARTMENT + "average salary:" + salary); }}
Dette vil producere følgende resultat −
Output
Development average salary:1000
Bemærk − Hvis variablerne er tilgængelige fra en ekstern klasse, skal konstanten åbnes som medarbejder.Afdeling
Hvad er det næste?
du har allerede brugt adgangsmodifikatorer (public & privat) i dette kapitel. Det næste kapitel vil forklare adgang modifikatorer og ikke-adgang modifikatorer i detaljer.