Tässä opetusohjelmassa opitaan Java Wrapper -luokasta esimerkkien avulla.
Kääre luokat Java käytetään muuntamaan alkukantaiset ( int
, char
, float
, jne), joka vastaa esineitä.
Jokaisella kahdeksasta primitiivisestä tyypistä on vastaavat kääreluokat.
Primitiivinen tyyppi | Käärintäluokka |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Muunna primitiivinen tyyppi kääreobjekteiksi
Voimme myös käyttää valueOf()
menetelmää primitiivisten tyyppien muuntamiseksi vastaaviksi kohteiksi.
Esimerkki 1: Primitiiviset tyypit kääreobjekteille
class Main ( public static void main(String() args) ( // create primitive types int a = 5; double b = 5.65; //converts into wrapper objects Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) ( System.out.println("An object of Integer is created."); ) if(bObj instanceof Double) ( System.out.println("An object of Double is created."); ) ) )
Tuotos
Luodaan kokonaislukuobjekti. Double-objekti luodaan.
Yllä olevassa esimerkissä olemme käyttäneet valueOf()
menetelmää primitiivisten tyyppien muuntamiseksi esineiksi.
Täällä olemme käyttäneet instanceof
käyttäjää tarkistamaan onko muodostettu esineet ovat Integer
tai Double
tyypin tai ei.
Java-kääntäjä voi kuitenkin muuntaa primitiiviset tyypit suoraan vastaaviksi objekteiksi. Esimerkiksi,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Tämä prosessi tunnetaan nimellä auto-boxing . Lisätietoja on osoitteessa Java autoboxing and unboxing.
Huomaa : Voimme myös muuntaa primitiiviset tyypit kääreobjekteiksi Wrapper
luokan rakentajilla. Rakentajien käyttö hylätään Java 9: n jälkeen.
Kääreobjektit alkutyyppeihin
Muuntaa esineitä alkukantaiset, voimme käyttää vastaavaa arvoa menetelmiä ( intValue()
, doubleValue()
jne) läsnä kussakin kääre luokassa.
Esimerkki 2: Kääreobjektit primitiivityypeiksi
class Main ( public static void main(String() args) ( // creates objects of wrapper class Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); // converts into primitive types int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("The value of a: " + a); System.out.println("The value of b: " + b); ) )
Tuotos
A: 23: n arvo: 5,55
Yllä olevassa esimerkissä olemme käyttäneet intValue()
ja doubleValue()
-menetelmää muuttaaksemme Integer
ja Double
-objektit vastaaviksi primitiivityypeiksi.
Java-kääntäjä voi kuitenkin muuntaa objektit automaattisesti vastaaviksi primitiivisiksi tyypeiksi. Esimerkiksi,
Integer aObj = Integer.valueOf(2); // converts into int type int a = aObj; Double bObj = Double.valueOf(5.55); // converts into double type double b = bObj;
Tätä prosessia kutsutaan pakkauksen purkamisesta . Lisätietoja on osoitteessa Java autoboxing and unboxing.
Käärintäluokkien edut
- Java-ohjelmassa joissakin tapauksissa on ehkä käytettävä objekteja primitiivisten tietotyyppien sijaan. Esimerkiksi työskennellessäni kokoelmien kanssa.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Voimme tallentaa nolla-arvon kääreobjekteihin. Esimerkiksi,
// generates an error int a = null; // runs perfectly Integer a = null;
Huomautus : Primitiiviset tyypit ovat tehokkaampia kuin vastaavat objektit. Siksi, kun tehokkuus on vaatimus, suositellaan aina primitiivisiä tyyppejä.