Elméleti alapozás
A csomagoló osztályok (wrapper classes)
Sajnos a csomagoló osztályokra alapszinten most kell utalnunk, amikor még nem is beszéltünk sem az osztályokról, sem adatok, műveletek, rutinok lehetséges "becsomagolásáról". Bár igazából már találkoztunk néhány olyan előregyártott és beépített metódussal (többek közt a Numerikus egész című fejezetben), amely során élvezhettük páratlan előnyeiket, például gond nélkül megállapíthattuk adataink alsó és felső határértékeit:
public class Main {
public static void main(String[] args) {
System.out.println(Byte.MIN_VALUE);
System.out.println(Short.MIN_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Long.MIN_VALUE);
System.out.println();
System.out.println(Byte.MAX_VALUE);
System.out.println(Short.MAX_VALUE);
System.out.println(Integer.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
System.out.println();
System.out.println(Float.MIN_VALUE);
System.out.println(Double.MIN_VALUE);
System.out.println();
System.out.println(Float.MAX_VALUE);
System.out.println(Double.MAX_VALUE);
}
}
Végeredmény:
-128
-32768
-2147483648
-9223372036854775808
127
32767
2147483647
9223372036854775807
1.4E-45
4.9E-324
3.4028235E38
1.7976931348623157E308
Ez persze valójában nem ment automatikusan, hiszen ezeket a rutinokat (itt MIN_VALUE és MAX_VALUE) előzőleg valakiknek meg kellett írniuk (ők egyébként a Java rendszerfejlesztői voltak).
De mit is tettek ezek a rendkívül okos emberek?
Amikor rájöttek arra, hogy egyszerű adattípussal eléggé nehézkes és korlátozott együttdolgozni, vették az összes egyszerű adattípust (A Java nyelv (egyszerű) adattípusai című fejezetcsomag), először nagyobb egységekbe, osztályokba csomagolták őket (Az absztrakció mélységei: az osztály fogalma című fejezet, még ne foglalkozzunk vele), majd további nagyon hasznos, a hétköznapi programozás során rendkívül jól felhasználható funkciókkal látták el őket.
A szakmai angol ezeket az osztályokat csomagoló osztályoknak (wrapper classes) nevezte el. (Egyes magyar programozási módszertanok nevezik burkoló osztályoknak is.) Könnyű őket felismernünk, mindegyik egyszerű adattípusnak van 1 azonos nevű, de NAGYBETŰVEL kezdődő csomagoló, burkoló osztálya:
-
boolean - Boolean
-
char - Character
-
byte - Byte
-
short - Short
-
int - Integer
-
long - Long
-
float - Float
-
double - Double
A csomagoló osztályon belül pedig -már említett módon-, programozási feladataink megkönnyítésére beépített metódusok, rutinok egész tömegét használhatjuk fel. Ezt fogjuk tenni mi is most már automatikusan a honlap további fejezeteiben.
A csomagoló osztályok a java.lang csomagban kaptak helyet.