Java Wrapperi klass (koos näidetega)

Selles õpetuses õpime näidete abil Java Wrapperi klassi kohta.

Ümbris klasside Java kasutatakse teisendada primitiivne tüüpi ( int, char, floatjne) vastavatesse objektid.

Kõigil kaheksast primitiivsest tüübist on vastavad ümbrisklassid.

Ürgne tüüp Mähkmeklass
byte Byte
boolean Boolean
char Character
double Double
float Float
int Integer
long Long
short Short

Teisendage primitiivne tüüp ümbrisobjektideks

Samuti võime valueOf()meetodit kasutada primitiivsete tüüpide teisendamiseks vastavateks objektideks.

Näide 1: Ürgsed tüübid ümbriste objektidele

 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."); ) ) ) 

Väljund

Luuakse täisarvu objekt. Luuakse topeltobjekt.

Ülaltoodud näites oleme valueOf()primitiivsete tüüpide objektideks teisendamise meetodit kasutanud .

Siin oleme kasutanud instanceofoperaator kontrollida, kas loodud objektid on Integervõi Doubletüübi või mitte.

Java kompilaator suudab aga primitiivsed tüübid otse vastavateks objektideks teisendada. Näiteks,

 int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b; 

Seda protsessi nimetatakse autopoksiks . Lisateabe saamiseks külastage Java autoboxing ja unboxing.

Märkus . Klassikonstruktorite abil saame teisendada ka primitiivsed tüübid ümbrisobjektideks Wrapper. Kuid konstruktorite kasutamine visatakse Java 9 järel kõrvale.

Pakkimisobjektid primitiivseteks tüüpideks

Teisendada esemeid primitiivne tüüpi, saame kasutada vastava väärtuse meetodeid ( intValue(), doubleValue()jne) esineb iga ümbris klassi.

Näide 2: Pakkimisobjektid primitiivseteks tüüpideks

 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); ) ) 

Väljund

 A väärtus: 23 väärtus b: 5,55 

Eespool toodud näites, oleme kasutanud intValue()ja doubleValue()meetod teisendada Integerja Doubleesemeid, mis vastab primitiivne tüüpi.

Kuid Java kompilaator suudab objektid automaatselt teisendada vastavateks primitiivseteks tüüpideks. Näiteks,

 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; 

See protsess on tuntud kui kasti tühistamine . Lisateabe saamiseks külastage Java autoboxing ja unboxing.

Pakendiklasside eelised

  • Javas võib juhtuda, et peame primitiivsete andmetüüpide asemel kasutama objekte. Näiteks kollektsioonidega töötamise ajal.
     // error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
    Sellistel juhtudel aitavad ümbrikuklassid meil kasutada objektidena primitiivseid andmetüüpe.
  • Saame nullväärtuse salvestada ümbrisobjektidesse. Näiteks,
      // generates an error int a = null; // runs perfectly Integer a = null; 

Märkus : primitiivsed tüübid on tõhusamad kui vastavad objektid. Seega, kui nõutav on tõhusus, soovitatakse alati primitiivseid tüüpe.

Huvitavad Artiklid...