Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

Οι wrapper classes στην Java αναφέρονται στις κλάσεις που χρησιμοποιούνται για να ενθυλακώσουν (wrap) τους πρωτογενείς τύπους δεδομένων (primitive data types) σε αντικείμενα. Κάθε πρωτογενής τύπος δεδομένων έχει μια αντίστοιχη wrapper class που τον αναπαριστά. Οι πιο γνωστές wrapper classes περιλαμβάνουν τα εξής:

  • Integer: Ενθυλακώνει τον πρωτογενή τύπο δεδομένων int.
  • Double: Ενθυλακώνει τον πρωτογενή τύπο δεδομένων double.
  • Boolean: Ενθυλακώνει τον πρωτογενή τύπο δεδομένων boolean.
  • Character: Ενθυλακώνει τον πρωτογενή τύπο δεδομένων char.

Οι wrapper classes παρέχουν πολλές χρήσιμες μεθόδους για την επεξεργασία και τη διαχείριση των πρωτογενών τύπων δεδομένων ως αντικείμενα. Επίσης, οι wrapper classes είναι αναγκαίες σε πολλές περιπτώσεις όπου απαιτείται η χρήση αντικειμενοστραφούς προγραμματισμού, καθώς οι πρωτογενείς τύποι δεδομένων δεν είναι αντικείμενα.

Οι wrapper classes χρησιμοποιούνται συνήθως για να μετατρέψουν πρωτογενείς τύπους δεδομένων σε αντικείμενα, προκειμένου να τους χρησιμοποιήσουμε σε περιβάλλοντα που απαιτούν αντικείμενα, όπως συλλογές (collections) ή άλλες κλάσεις. Επιπλέον, οι wrapper classes παρέχουν μεθόδους που μας επιτρέπουν να εκτελέσουμε βασικές λειτουργίες με τις τιμές που αντιστοιχούν στους πρωτογενείς τύπους δεδομένων.

Παρακάτω δίνεται ένα παράδειγμα που δείχνει πώς να χρησιμοποιήσετε μια wrapper class στη Java:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Integer myInt = 5;
System.out.println(myInt.toString()); // Output: 5
Integer myInt = 5; System.out.println(myInt.toString()); // Output: 5
Integer myInt = 5;
System.out.println(myInt.toString()); // Output: 5

Στο παραπάνω παράδειγμα, ο πρωτογενής τύπος δεδομένων int μετατρέπεται σε αντικείμενο της κλάσης Integer και στη συνέχεια καλείται η μέθοδος toString() για να επιστραφεί ο αριθμός ως συμβολοσειρά.

Οι βασικοί τύποι δεδομένων (όπως int, double κ.λπ.) δεν είναι συμβατοί με τις συλλογές (collections) της Java, όπως η ArrayList, επειδή αυτές οι συλλογές αποθηκεύουν αντικείμενα αντί για τους πρωτογενείς τύπους δεδομένων. Για να αποθηκεύσουμε πρωτογενείς τύπους δεδομένων στις συλλογές, πρέπει να χρησιμοποιήσουμε wrapper classes (τάξεις περιτυλίγματος) που επιτρέπουν τη μετατροπή των πρωτογενών τύπων σε αντικείμενα. Οι wrapper classes για τους πρωτογενείς τύπους δεδομένων είναι οι Integer, Double, κ.λπ. Έτσι, μπορούμε να χρησιμοποιήσουμε τις wrapper classes για να αποθηκεύσουμε πρωτογενείς τύπους δεδομένων στις συλλογές όπως η ArrayList.

Στο παράδειγμα που δίνεται παραπάνω, η σωστή σύνταξη για τη δημιουργία μιας ArrayList με ακέραιους αριθμούς είναι η εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
ArrayList<Integer> myNumbers = new ArrayList<Integer>();

Όπως βλέπετε, χρησιμοποιούμε την wrapper class Integer αντί για τον πρωτογενή τύπο δεδομένων int. Με αυτόν τον τρόπο, μπορούμε να αποθηκεύσουμε ακέραιους αριθμούς στη συλλογή myNumbers.

[adinserter block=”2″]

Στην Java, μπορείτε να δημιουργήσετε ένα αντικείμενο wrapper χρησιμοποιώντας την αντίστοιχη wrapper class. Για παράδειγμα, για να δημιουργήσετε ένα αντικείμενο τύπου Integer, μπορείτε να γράψετε το εξής:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Integer myInt = new Integer(5);
Integer myInt = new Integer(5);
Integer myInt = new Integer(5);

Στο παραπάνω παράδειγμα, δημιουργούμε ένα νέο αντικείμενο Integer με την τιμή 5. Μπορούμε στη συνέχεια να εκτυπώσουμε την τιμή αυτού του αντικειμένου χρησιμοποιώντας απλώς το αντικείμενο, όπως στο παρακάτω παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
System.out.println(myInt);
System.out.println(myInt);
System.out.println(myInt);

Το παραπάνω κώδικας θα εκτυπώσει την τιμή 5.

Μπορείτε επίσης να δημιουργήσετε ένα αντικείμενο wrapper παρέχοντας απλώς την τιμή του πρωτογενούς τύπου ως παράμετρο στον constructor της αντίστοιχης wrapper class.

Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Integer myInt = new Integer(10); // Δημιουργία αντικειμένου Integer με τιμή 10
Double myDouble = new Double(3.14); // Δημιουργία αντικειμένου Double με τιμή 3.14
Boolean myBoolean = new Boolean(true); // Δημιουργία αντικειμένου Boolean με τιμή true
Integer myInt = new Integer(10); // Δημιουργία αντικειμένου Integer με τιμή 10 Double myDouble = new Double(3.14); // Δημιουργία αντικειμένου Double με τιμή 3.14 Boolean myBoolean = new Boolean(true); // Δημιουργία αντικειμένου Boolean με τιμή true
Integer myInt = new Integer(10);    // Δημιουργία αντικειμένου Integer με τιμή 10
Double myDouble = new Double(3.14); // Δημιουργία αντικειμένου Double με τιμή 3.14
Boolean myBoolean = new Boolean(true); // Δημιουργία αντικειμένου Boolean με τιμή true

Επιπλέον, μπορείτε να χρησιμοποιήσετε τις μεθόδους valueOf() ή parseX() για να μετατρέψετε ένα πρωτογενή τύπο δεδομένων σε ένα αντικείμενο wrapper.

Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Integer myInt = Integer.valueOf("10"); // Δημιουργία αντικειμένου Integer με τιμή 10, από μια συμβολοσειρά
Double myDouble = Double.valueOf("3.14"); // Δημιουργία αντικειμένου Double με τιμή 3.14, από μια συμβολοσειρά
int myIntValue = Integer.parseInt("10"); // Μετατροπή της συμβολοσειράς "10" σε ακέραιο αριθμό 10
double myDoubleValue = Double.parseDouble("3.14"); // Μετατροπή της συμβολοσειράς "3.14" σε δεκαδικό αριθμό 3.14
Integer myInt = Integer.valueOf("10"); // Δημιουργία αντικειμένου Integer με τιμή 10, από μια συμβολοσειρά Double myDouble = Double.valueOf("3.14"); // Δημιουργία αντικειμένου Double με τιμή 3.14, από μια συμβολοσειρά int myIntValue = Integer.parseInt("10"); // Μετατροπή της συμβολοσειράς "10" σε ακέραιο αριθμό 10 double myDoubleValue = Double.parseDouble("3.14"); // Μετατροπή της συμβολοσειράς "3.14" σε δεκαδικό αριθμό 3.14
Integer myInt = Integer.valueOf("10");  // Δημιουργία αντικειμένου Integer με τιμή 10, από μια συμβολοσειρά
Double myDouble = Double.valueOf("3.14"); // Δημιουργία αντικειμένου Double με τιμή 3.14, από μια συμβολοσειρά
int myIntValue = Integer.parseInt("10");  // Μετατροπή της συμβολοσειράς "10" σε ακέραιο αριθμό 10
double myDoubleValue = Double.parseDouble("3.14"); // Μετατροπή της συμβολοσειράς "3.14" σε δεκαδικό αριθμό 3.14

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο Integer με τιμή 10, χρησιμοποιώντας τη μέθοδο valueOf() και μια συμβολοσειρά ως παράμετρο.

Αντίστοιχα, μπορούμε να μετατρέψουμε ένα αντικείμενο wrapper σε ένα πρωτογενή τύπο δεδομένων, χρησιμοποιώντας τις μεθόδους xxxValue() του αντίστοιχου wrapper class.

Για παράδειγμα:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Integer myInt = new Integer(10); // Δημιουργία αντικειμένου Integer με τιμή 10
int myPrimitiveInt = myInt.intValue(); // Μετατροπή του αντικειμένου Integer σε πρωτογενή ακέραιο αριθμό
Integer myInt = new Integer(10); // Δημιουργία αντικειμένου Integer με τιμή 10 int myPrimitiveInt = myInt.intValue(); // Μετατροπή του αντικειμένου Integer σε πρωτογενή ακέραιο αριθμό
Integer myInt = new Integer(10); // Δημιουργία αντικειμένου Integer με τιμή 10
int myPrimitiveInt = myInt.intValue(); // Μετατροπή του αντικειμένου Integer σε πρωτογενή ακέραιο αριθμό

[adinserter block=”3″]

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο Integer με τιμή 10, και μετά το μετατρέπουμε σε ένα πρωτογενή ακέραιο αριθμό, χρησιμοποιώντας τη μέθοδο intValue() του Integer wrapper class.

Οι wrapper κλάσεις χρησιμοποιούνται συνήθως για να μετατρέψουν έναν πρωτογενή τύπο δεδομένων σε ένα αντικείμενο. Αυτό μας επιτρέπει να χρησιμοποιήσουμε το αντικείμενο ως παράμετρο σε μεθόδους, να το αποθηκεύσουμε σε συλλογές (collections), να το συγκρίνουμε με άλλα αντικείμενα, κ.λπ.

Τα παραδείγματα που παρουσιάστηκαν παραπάνω δείχνουν πώς μπορούμε να χρησιμοποιήσουμε τις μεθόδους xxxValue() που παρέχονται από τις wrapper κλάσεις για να αντλήσουμε την τιμή που συνδέεται με ένα συγκεκριμένο αντικείμενο wrapper. Αυτό είναι ιδιαίτερα χρήσιμο όταν χρειαζόμαστε να εκτελέσουμε μια λειτουργία που δεν υποστηρίζει αντικείμενα wrapper απευθείας.

Εδώ είναι ένα ακόμη παράδειγμα που δείχνει πώς μπορούμε να χρησιμοποιήσουμε τη μέθοδο doubleValue() του αντικειμένου Double για να πάρουμε την αντίστοιχη διπλή τιμή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Double myDouble = new Double(3.14);
double myPrimitiveDouble = myDouble.doubleValue();
System.out.println(myPrimitiveDouble); // Εκτύπωση: 3.14
Double myDouble = new Double(3.14); double myPrimitiveDouble = myDouble.doubleValue(); System.out.println(myPrimitiveDouble); // Εκτύπωση: 3.14
Double myDouble = new Double(3.14);
double myPrimitiveDouble = myDouble.doubleValue();
System.out.println(myPrimitiveDouble); // Εκτύπωση: 3.14

Στο παραπάνω παράδειγμα, δημιουργούμε ένα αντικείμενο Double με τιμή 3.14, και μετά το μετατρέπουμε σε ένα πρωτογενή ακέραιο αριθμό, χρησιμοποιώντας τη μέθοδο doubleValue() του Double wrapper class.

16 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων