JAVA PAGRINDAI DETALIAU
Java numatytosios reikšmės
Sukūrus objektą arba masyvą, Java jų laukus ir elementus automatiškai užpildo pradinėmis reikšmėmis. Jos vadinamos numatytosiomis reikšmėmis. Tačiau ši taisyklė negalioja vietiniams kintamiesiems.
Kokią reikšmę suteikia Java?
| Tipas | Numatytoji reikšmė | Paprastas paaiškinimas |
|---|---|---|
byte, short, int, long | 0 | Pradinis sveikasis skaičius yra nulis. |
float, double | 0.0 | Pradinis trupmeninis skaičius yra nulis. |
boolean | false | Sąlyga iš pradžių laikoma neteisinga. |
char | '\u0000' | Nulio simbolis, kuris paprastai ekrane nematomas. |
Nuorodų tipai, pavyzdžiui, String | null | Nuoroda kol kas nerodo į jokį objektą. |
Objekto laukų numatytosios reikšmės
Jeigu klasės laukams patys nepriskiriame reikšmių, Java jas suteikia kuriant objektą:
class PirkiniuKrepselis {
int prekiuKiekis;
double bendraKaina;
boolean apmoketa;
char kategorija;
String pirkejoVardas;
}
PirkiniuKrepselis krepselis = new PirkiniuKrepselis();
System.out.println(krepselis.prekiuKiekis);
System.out.println(krepselis.bendraKaina);
System.out.println(krepselis.apmoketa);
System.out.println((int) krepselis.kategorija);
System.out.println(krepselis.pirkejoVardas);0
0.0
false
0
null
prekiuKiekisyraint, todėl pradžioje lygus0.bendraKainayradouble, todėl pradžioje lygi0.0.apmoketayraboolean, todėl pradžioje lygifalse.charnulio simbolio nematome, todėl pavertę jį įintišspausdiname jo kodą0.pirkejoVardasdar nerodo į jokįStringobjektą, todėl jo reikšmė yranull.
Masyvo elementai taip pat užpildomi
int[] taskai = new int[3];
boolean[] atlikta = new boolean[2];
String[] vardai = new String[2];
System.out.println(taskai[0]);
System.out.println(atlikta[0]);
System.out.println(vardai[0]);0
false
null
new sukuria visas masyvo vietas iš karto. Net jei patys dar nieko neįrašėme, kiekviena vieta jau turi jos tipui tinkamą numatytąją reikšmę.
Vietiniai kintamieji numatytosios reikšmės negauna
Metodo viduje paskelbtą kintamąjį prieš naudojant privalome inicializuoti patys:
public static void main(String[] args) {
int amzius;
System.out.println(amzius); // Klaida: amzius neinicijuotas
}Kodas nesukompiliuojamas: kompiliatorius praneša, kad kintamasis amzius galėjo būti neinicijuotas.
Java taip apsaugo nuo atsitiktinio nežinomos reikšmės naudojimo. Kintamajam reikia suteikti reikšmę prieš bandant ją perskaityti.
public static void main(String[] args) {
int amzius = 12;
String vardas = "Ieva";
System.out.println(vardas + " yra " + amzius + " metų.");
}Ieva yra 12 metų.
Dažnai geriau reikšmę nurodyti aiškiai
class Lempa {
boolean ijungta = true;
int ryskumas = 50;
String kambarys = "Virtuvė";
} Nors Java galėtų suteikti false, 0 arba null, prasminga pradinė reikšmė aiškiau parodo programuotojo ketinimą. Šiame pavyzdyje iš karto matome, kokios būsenos lempa sukuriama.
null nėra tuščias tekstas
nullreiškia, kad nuoroda nerodo į jokį objektą.""yra egzistuojantis, bet nė vieno simbolio neturintisStringobjektas.- Per
nullnegalima kviesti metodo – tai gali sukeltiNullPointerException. - Numatytoji reikšmė nebūtinai yra tinkama programos prasmei, todėl svarbius laukus inicializuok sąmoningai.
Ką verta prisiminti?
- Objektų laukai ir masyvų elementai automatiškai gauna numatytąsias reikšmes.
- Skaičių pradinė reikšmė yra nulis,
boolean–false. - Nuorodų tipų pradinė reikšmė yra
null. - Vietinius kintamuosius prieš naudojant būtina inicializuoti patiems.
- Aiški pradinė reikšmė dažnai padaro kodą lengviau suprantamą.

