egy változó olyan nevű tárhelyet biztosít számunkra, amelyet programjaink manipulálhatnak. A Java minden változójának van egy meghatározott típusa, amely meghatározza a változó memóriájának méretét és elrendezését; az adott memóriában tárolható értékek tartományát; és a változóra alkalmazható műveletek halmazát.
minden változót deklarálnia kell, mielőtt használná őket. A következő a változó deklaráció alapvető formája –
data type variable ...] ;
itt az adattípus a Java egyik adattípusa, a változó pedig a változó neve. A megadott típusú több változó deklarálásához vesszővel elválasztott listát használhat.
az alábbiakban a változók deklarálására és inicializálására vonatkozó érvényes példák találhatók Java-ban –
példa
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'
Ez a fejezet a Java nyelven elérhető különböző változótípusokat ismerteti. Háromféle változó létezik a Java-ban –
- helyi változók
- Példányváltozók
- osztály/statikus változók
helyi változók
-
a helyi változókat metódusokban, konstruktorokban vagy blokkokban deklarálják.
-
helyi változók jönnek létre a metódus, konstruktor vagy blokk beírásakor, és a változó megsemmisül, amint kilép a metódusból, konstruktorból vagy blokkból.
-
A hozzáférési módosítók nem használhatók helyi változókhoz.
-
a helyi változók csak a deklarált metóduson, konstruktoron vagy blokkon belül láthatók.
-
a helyi változókat verem szinten valósítják meg belsőleg.
-
a helyi változóknak nincs alapértelmezett értéke, ezért a helyi változókat deklarálni kell, és az első használat előtt hozzá kell rendelni egy kezdeti értéket.
példa
itt az életkor egy helyi változó. Ezt a pupAge() metóduson belül definiáljuk, és annak hatóköre csak erre a módszerre korlátozódik.
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(); }}
Ez a következő eredményt fogja eredményezni −
kimenet
Puppy age is: 7
példa
a következő példa inicializálás nélkül használja az életkorot, így hibát ad a fordítás idején.
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(); }}
Ez a következő hibát eredményezi a fordítás során −
kimenet
Test.java:4:variable number might not have been initializedage = age + 7; ^1 error
Példányváltozók
-
A Példányváltozók egy osztályban vannak deklarálva, de metóduson, konstruktoron vagy bármely blokkon kívül.
-
amikor a kupacban lévő objektumhoz helyet rendelnek, minden egyes példányváltozó értékéhez rés jön létre.
-
Példányváltozók akkor jönnek létre, amikor egy objektumot az ‘új’ kulcsszó használatával hoznak létre, és megsemmisülnek, amikor az objektum megsemmisül.
-
A Példányváltozók olyan értékeket tartalmaznak, amelyekre egynél több metódusnak, konstruktornak vagy blokknak kell hivatkoznia, vagy az objektum állapotának lényeges részei, amelyeknek az egész osztályban jelen kell lenniük.
-
A Példányváltozók osztályszinten deklarálhatók használat előtt vagy után.
-
hozzáférési módosítók adhatók például változók.
-
a példányváltozók az osztály összes metódusánál, konstruktoránál és blokkjánál láthatóak. Általában ajánlott ezeket a változókat privátvá tenni (hozzáférési szint). Az alosztályok láthatósága azonban megadható ezekhez a változókhoz hozzáférési módosítók használatával.
-
A Példányváltozók alapértelmezett értékekkel rendelkeznek. Számoknál az alapértelmezett érték 0, logikai értékeknél hamis, objektumhivatkozásoknál pedig null. Az értékek hozzárendelhetők a deklaráció során vagy a konstruktoron belül.
-
A Példányváltozók közvetlenül elérhetők az osztályon belüli változó nevének meghívásával. A statikus metódusokon belül azonban (amikor a példányváltozók hozzáférhetőséget kapnak) a teljesen minősített név használatával kell meghívni őket. Tárgyreferencia.Változó név.
példa
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(); }}
Ez a következő eredményt hozza −
kimenet
name : Ransikasalary :1000.0
osztály/statikus változók
-
osztályváltozók, más néven statikus változók a statikus kulcsszóval deklarálva vannak osztályban, de metóduson, konstruktoron vagy blokkon kívül.
-
minden osztályváltozónak csak egy példánya lenne osztályonként, függetlenül attól, hogy hány objektum jön létre belőle.
-
a statikus változókat ritkán használják azon kívül, hogy állandóként deklarálják őket. Az állandók olyan változók, amelyek nyilvánosak/privátak, véglegesek és statikusak. Az állandó változók soha nem változnak a kezdeti értékükhöz képest.
-
a statikus változók a statikus memóriában tárolódnak. Ritka, hogy a deklarált véglegestől eltérő statikus változókat nyilvános vagy magánállandóként használják.
-
statikus változók jönnek létre, amikor a program elindul, és megsemmisülnek, amikor a program leáll.
-
a láthatóság hasonló a példányváltozókhoz. A legtöbb statikus változót azonban nyilvánosnak nyilvánítják, mivel elérhetőnek kell lenniük az osztály felhasználói számára.
-
Az alapértelmezett értékek megegyeznek a példányváltozókkal. Számok esetén az alapértelmezett érték 0; logikai értékek esetén hamis; objektumhivatkozások esetén pedig null. Az értékek hozzárendelhetők a deklaráció során vagy a konstruktoron belül. Ezenkívül az értékek speciális statikus inicializáló blokkokban is hozzárendelhetők.
-
a statikus változók az osztálynév ClassName hívásával érhetők el.Változó név.
-
amikor az osztályváltozókat nyilvános statikus véglegesnek deklaráljuk, akkor a változónevek (állandók) mind nagybetűkkel vannak ellátva. Ha a statikus változók nem nyilvánosak és véglegesek, az elnevezési szintaxis megegyezik a példány és a helyi változókéval.
példa
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); }}
Ez a következő eredményt eredményezi −
kimenet
Development average salary:1000
Megjegyzés − Ha a változókat külső osztályból érik el, az állandót alkalmazottként kell elérni.Osztály
mi a következő lépés?
ebben a fejezetben már használt hozzáférési módosítókat (public & private). A következő fejezet részletesen ismerteti a hozzáférés-módosítókat és a nem hozzáférés-módosítókat.