Jelenlegi hely

3.4. Változók inicializálása

A lokális és tagváltozókat lehet inicializálni (kezdőértékkel ellátni) a deklarációnál. A változó adattípusa meghatározza a lehetséges kezdőérték típusát is.

byte largestByte = Byte.MAX_VALUE;
short largestShort = Short.MAX_VALUE;
int largestInteger = Integer.MAX_VALUE;
long largestLong = Long.MAX_VALUE;

float largestFloat = Float.MAX_VALUE;
double largestDouble = Double.MAX_VALUE;

char aChar = 'S';
boolean aBoolean = true;

A Java fordító nem engedi meg, hogy inicializálatlan lokális változót használjunk, vagyis az első használat előtt mindenképpen inicializálni kell azt. Tagváltozók esetén a 0 érték alapértelmezett, tehát az inicializálás elmaradása esetén az érték (típustól függő) 0 vagy null lesz. Ennek ellenére jó szokás tagváltozók 0 kezdőértékét is explicit megadni.

A metódusok és konstruktorok formális paramétereinek, valamint a kivételkezelő paramétereknek nem lehet kezdőértéket adni, az értékét a híváskor kapják meg.

Megjegyzés: A C++ nyelvvel szemben tehát a paraméterek esetén nem adható meg konstans kezdőérték. A következő kód csak C++-ban működik, Javában nem:

void move(int x = 1, int y = 1) {...}

Változók inicializálásához a legcélszerűbb ugyanolyan típusú literált megadni, mint a változó. Itt is igaz az az alapelv, hogy az adatvesztéssel járó implicit konverzió nem megengedett, tehát a következő kód hibás:

int i = 3.2;

Megjegyzés: Az előző példában szereplő 3.2 literál double típusú, tehát pl. float változó esetén sem lenne helyes az inicializálás. 3.2f lenne az alkalmas float literált.