Σε αυτό το σεμινάριο, θα μάθουμε για την τάξη Java Wrapper με τη βοήθεια παραδειγμάτων.
Οι κατηγορίες περιτύλιγμα σε Java χρησιμοποιείται για να μετατρέψει πρωτόγονες μορφές ( int
, char
, float
, κλπ) σε αντίστοιχα αντικείμενα.
Κάθε ένας από τους 8 πρωτόγονους τύπους έχει αντίστοιχες τάξεις περιτυλίγματος.
Πρωτόγονος τύπος | Κατηγορία περιτυλίγματος |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Μετατροπή πρωτόγονου τύπου σε αντικείμενα περιτύλιξης
Μπορούμε επίσης να χρησιμοποιήσουμε τη valueOf()
μέθοδο για τη μετατροπή πρωτόγονων τύπων σε αντίστοιχα αντικείμενα.
Παράδειγμα 1: Πρωτόγονοι τύποι για αναδίπλωση αντικειμένων
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."); ) ) )
Παραγωγή
Δημιουργείται ένα αντικείμενο Integer. Δημιουργείται ένα αντικείμενο Double.
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη valueOf()
μέθοδο για τη μετατροπή των πρωτόγονων τύπων σε αντικείμενα.
Εδώ, χρησιμοποιήσαμε τον instanceof
τελεστή για να ελέγξουμε εάν τα παραγόμενα αντικείμενα είναι Integer
ή Double
τύπου ή όχι.
Ωστόσο, ο μεταγλωττιστής Java μπορεί να μετατρέψει άμεσα τους πρωτόγονους τύπους σε αντίστοιχα αντικείμενα. Για παράδειγμα,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Αυτή η διαδικασία είναι γνωστή ως αυτόματη πυγμαχία . Για να μάθετε περισσότερα, επισκεφθείτε το Java autoboxing και unboxing.
Σημείωση : Μπορούμε επίσης να μετατρέψουμε πρωτόγονους τύπους σε αντικείμενα περιτυλίγματος χρησιμοποιώντας Wrapper
κατασκευαστές κλάσης. Ωστόσο, η χρήση κατασκευαστών απορρίπτεται μετά την Java 9.
Αναδίπλωση αντικειμένων σε πρωτόγονους τύπους
Για τη μετατροπή αντικείμενα στις πρωτόγονες τύπους, μπορούμε να χρησιμοποιήσουμε τις αντίστοιχες μεθόδους αξίας ( intValue()
, doubleValue()
, κλπ) που υπάρχει σε κάθε κατηγορία περιτύλιγμα.
Παράδειγμα 2: Περιτύλιγμα αντικειμένων σε πρωτόγονους τύπους
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); ) )
Παραγωγή
Η τιμή του a: 23 Η τιμή του b: 5,55
Στο παραπάνω παράδειγμα, χρησιμοποιήσαμε τη μέθοδο intValue()
και τη doubleValue()
μέθοδο για τη μετατροπή των αντικειμένων Integer
και των Double
αντικειμένων σε αντίστοιχους πρωτόγονους τύπους.
Ωστόσο, ο μεταγλωττιστής Java μπορεί αυτόματα να μετατρέψει αντικείμενα σε αντίστοιχους πρωτόγονους τύπους. Για παράδειγμα,
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;
Αυτή η διαδικασία είναι γνωστή ως αποσύνδεση . Για να μάθετε περισσότερα, επισκεφθείτε το Java autoboxing και unboxing.
Πλεονεκτήματα των τάξεων Wrapper
- Στην Java, μερικές φορές ίσως χρειαστεί να χρησιμοποιήσουμε αντικείμενα αντί για πρωτόγονους τύπους δεδομένων. Για παράδειγμα, ενώ εργάζεστε με συλλογές.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Μπορούμε να αποθηκεύσουμε την τιμή null σε αντικείμενα περιτυλίγματος. Για παράδειγμα,
// generates an error int a = null; // runs perfectly Integer a = null;
Σημείωση : Οι πρωτόγονοι τύποι είναι πιο αποτελεσματικοί από τα αντίστοιχα αντικείμενα. Ως εκ τούτου, όταν η αποτελεσματικότητα είναι η απαίτηση, συνιστάται πάντα πρωτόγονοι τύποι.