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 instanceofkäyttäjää tarkistamaan onko muodostettu esineet ovat Integertai Doubletyypin 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 Wrapperluokan 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 Integerja 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.
Tällaisissa tapauksissa käärintäluokat auttavat meitä käyttämään primitiivisiä tietotyyppejä esineinä.// 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ä.








