marker interface java
Αυτό το σεμινάριο εξηγεί τι είναι μια διασύνδεση δείκτη στην Java. Καλύπτει επίσης Serialization Deserialization και Cloning σε Java με παραδείγματα κώδικα:
Θα συζητήσουμε το τελευταίο θέμα στο Interfaces, δηλαδή Marker Interface στην Java.
Αφού τελειώσουμε με τη διεπαφή δείκτη, θα συζητήσουμε δύο παραδείγματα, δηλαδή σειριοποιήσιμη και κλωνοποιήσιμη διεπαφή στην Java. Ας ξεκινήσουμε με τη διεπαφή δείκτη.
=> Επισκεφθείτε εδώ για να μάθετε Java από το μηδέν
Τι θα μάθετε:
- Διασύνδεση δείκτη στην Java
- Σειριοποίηση στην Ιάβα
- Σειριακή δυνατότητα διασύνδεσης Java
- Κλωνοποιήσιμη διεπαφή στην Java
- συμπέρασμα
Διασύνδεση δείκτη στην Java
Μια διεπαφή δείκτη στην Java είναι μια κενή διεπαφή που δεν έχει πεδία ή μεθόδους. Αυτή η διεπαφή δείκτη λέει στον μεταγλωττιστή ότι τα αντικείμενα της κλάσης που εφαρμόζουν τη διεπαφή δείκτη είναι διαφορετικά και ότι πρέπει να αντιμετωπίζονται διαφορετικά.
Κάθε διεπαφή δείκτη στην Java δείχνει ότι αντιπροσωπεύει κάτι ιδιαίτερο για το JVM ή το μεταγλωττιστή.
Στην Java, έχουμε τρεις διεπαφές που είναι διεπαφές Marker όπως φαίνεται παρακάτω:
# 1) Σειριακή δυνατότητα διεπαφής: Το Serializable είναι μια διεπαφή δείκτη που υπάρχει στο πακέτο java.io. Μπορούμε να σειριοποιήσουμε αντικείμενα χρησιμοποιώντας αυτήν τη διεπαφή, δηλαδή να αποθηκεύσουμε την κατάσταση αντικειμένου σε ένα αρχείο.
# 2) Κλωνοποιήσιμη διεπαφή: Η κλωνοποιήσιμη διεπαφή είναι μέρος του πακέτου java.lang και επιτρέπει την κλωνοποίηση των αντικειμένων.
# 3) Απομακρυσμένη διεπαφή: Η απομακρυσμένη διεπαφή είναι μέρος του πακέτου java.RMI και χρησιμοποιούμε αυτήν τη διεπαφή για τη δημιουργία εφαρμογών RMI. Αυτή η διεπαφή ασχολείται κυρίως με απομακρυσμένα αντικείμενα.
Σε αυτό το σεμινάριο, θα συζητήσουμε τη σειριοποιήσιμη και κλωνοποιήσιμη διεπαφή. Η απομακρυσμένη διεπαφή θα συζητηθεί κατά τη μετάβαση στο RMI στην Java.
Σειριοποίηση στην Ιάβα
Πριν αναφερθούμε στις λεπτομέρειες της σειριακής διασύνδεσης στην Java, ας κατανοήσουμε τη διαδικασία της σειριοποίησης καθώς και την αποεριοποίηση στην Java.
Η σειριοποίηση μπορεί να οριστεί ως μια διαδικασία με την οποία μετατρέπουμε την κατάσταση του αντικειμένου σε ισοδύναμη ροή byte για να αποθηκεύσουμε το αντικείμενο στη μνήμη σε ένα αρχείο ή επιμένω το αντικείμενο.
Όταν θέλουμε να ανακτήσουμε το αντικείμενο από την αποθηκευμένη κατάστασή του και να αποκτήσουμε πρόσβαση στα περιεχόμενά του, θα πρέπει να μετατρέψουμε τη ροή byte στο πραγματικό αντικείμενο Java και αυτή η διαδικασία ονομάζεται deserialization.
Με αυτόν τον τρόπο μπορεί να υπάρχουν πολλές περιπτώσεις όπου πρέπει να κάνουμε σειριοποίηση / αποεστερίωση αντικειμένων Java σε μια εφαρμογή Java σε όλη τη διάρκεια ζωής.
Η διαδικασία της σειριοποίησης / αποεριοποίησης εμφανίζεται παρακάτω:
Όπως φαίνεται παραπάνω, η σειριοποίηση μετατρέπει το αντικείμενο σε ροή. Η αποεριοποίηση μετατρέπει τη ροή byte σε αντικείμενο Java.
Ολόκληρος ο μηχανισμός σειριοποίησης και αποεριοποίησης είναι ανεξάρτητος από την πλατφόρμα. Αυτό σημαίνει ότι μπορούμε να κάνουμε σειριοποίηση του αντικειμένου σε μία πλατφόρμα και στη συνέχεια να το αποστειροποιούμε σε άλλη πλατφόρμα.
Όταν λέμε ότι έχουμε σειριοποιήσει το αντικείμενο Java, αυτό σημαίνει ότι έχουμε καλέσει τη μέθοδο ObjectOutputStream writeObject () για να γράψουμε το αντικείμενο σε ένα αρχείο.
ταξινόμηση σφαλμάτων στη δοκιμή λογισμικού
δημόσιο τελικό void writeObect (Object obj) ρίχνει το IOException
Ομοίως, σε περίπτωση αποεπιλογής, καλούμε τη μέθοδο ObjectInputStream :: readObject () για να διαβάσετε τα δεδομένα από το αρχείο που έχει αποθηκεύσει το αντικείμενο.
δημόσιο τελικό Object readObject () ρίχνει το IOException, ClassNotFoundException
Σειριακή δυνατότητα διασύνδεσης Java
Η Java παρέχει τη διεπαφή που ονομάζεται «σειριοποιήσιμη» χρησιμοποιώντας την οποία μπορούμε να εφαρμόσουμε τη σειριοποίηση και την αποεριοποίηση στην Java.
Η σειριοποιήσιμη διεπαφή είναι μέρος του πακέτου java.io. Είναι ένα παράδειγμα μιας διεπαφής δείκτη που συζητήσαμε παραπάνω και0 που δεν έχει μεθόδους ή μέλη. Η σειριοποιήσιμη διεπαφή «σηματοδοτεί» τις κλάσεις Java έτσι ώστε τα αντικείμενα αυτών των τάξεων να έχουν τη δυνατότητα να παραμείνουν.
Έτσι, η τάξη του οποίου το αντικείμενο πρέπει να επιμείνουμε πρέπει να εφαρμόσει το Serializable interface. Στη συνέχεια, το αντικείμενο αυτής της κλάσης (εφαρμογή Serializable interface) θα χρησιμοποιήσει μεθόδους writeObject () και readObject () αντίστοιχα για σειριοποίηση και αποεστερίωση του αντικειμένου κλάσης.
Σημειώστε ότι όλες οι τάξεις περιτυλίγματος και η κλάση String εφαρμόζουν το java.io.Serializable από προεπιλογή.
Πρέπει να πληρούμε την ακόλουθη προϋπόθεση για ένα επιτυχημένο σειριοποίηση ενός αντικειμένου:
- Η κλάση της οποίας τα αντικείμενα είναι σειριακά πρέπει να εφαρμόσει java.io.Serializable interface.
- Όλα τα πεδία μέλους της τάξης πρέπει να είναι σειριοποιήσιμα. Εάν ένα συγκεκριμένο πεδίο δεν είναι σειριοποιήσιμο, τότε πρέπει να το επισημάνουμε ως παροδικό.
Αντίθετα, μια κλάση είναι σειριοποιήσιμη μόνο εάν εφαρμόζει τη διασύνδεση java.io.Serializable διαφορετικά δεν είναι σειριοποιήσιμη.
Πώς να σειριοποιήσετε και να αποστειρώσετε ένα αντικείμενο στην Java
Όταν κάνουμε σειριοποίηση ενός αντικειμένου στην Java χρησιμοποιούμε τη μέθοδο writeObject του αντικειμένου OutputStream για να γράψουμε το αντικείμενο σε ένα αρχείο.
Για την αποεστερίωση του αντικειμένου στην Java χρησιμοποιούμε τη μέθοδο readObject () του ObjectInputStream για να διαβάσουμε τα περιεχόμενα του αρχείου και να τα διαβάσουμε σε ένα αντικείμενο.
Σε αυτό το παράδειγμα, έχουμε μια τάξη μαθητή που εφαρμόζει τη σειριακή δυνατότητα διεπαφής. Αυτό σημαίνει ότι μπορούμε να σειριοποιήσουμε ή να αποστειρώσουμε τα αντικείμενα της μαθητικής τάξης.
Στην κύρια μέθοδο του προγράμματος Java, δημιουργούμε ένα αντικείμενο κλάσης μαθητή. Στη συνέχεια, δημιουργούμε ένα ObjectOutputStream που οδηγεί σε ένα αντικείμενο FileOutputStream που με τη σειρά του δείχνει ένα αρχείο στο οποίο πρέπει να γράψουμε το αντικείμενο Student. Στη συνέχεια καλούμε τη μέθοδο writeObject () που γράφει το αντικείμενο στο αρχείο.
Κατά την επιτυχή εγγραφή του συγκεκριμένου αντικειμένου στο καθορισμένο αρχείο, το πρόγραμμα δίνει ένα κατάλληλο μήνυμα εξόδου. Στη συνέχεια, αποστειρώνουμε το αντικείμενο αναστρέφοντας την παραπάνω διαδικασία. Αρχικά, δημιουργούμε ένα αντικείμενο ObjectOutputStream στο οποίο διαβάζουμε το αρχείο του οποίου τα περιεχόμενα πρέπει να διαβαστούν.
Στη συνέχεια, χρησιμοποιούμε τη μέθοδο readObject () για να διαβάσουμε τα περιεχόμενα και να το μεταφέρουμε στο αντικείμενο Student. Στη συνέχεια εκτυπώνουμε τα περιεχόμενα του αντικειμένου Student.
Παράδειγμα σειριοποίησης / αποεριοποίησης
Το ακόλουθο πρόγραμμα Java δείχνει το μηχανισμό σειριοποίησης / αποεστερίωσης στην Java όπως συζητήθηκε παραπάνω.
import java.io.*; import java.io.Serializable; //Class Student implements class Student implements Serializable{ int id; String name; public Student(int id, String name) { this.id = id; this.name = name; } } class Main{ public static void main(String args()){ try{ //Create the object of student class Student s1 =new Student(27,'Eddie'); //Write the object to the stream by creating a output stream FileOutputStream fout=new FileOutputStream('Eddie.txt'); ObjectOutputStream out=new ObjectOutputStream(fout); out.writeObject(s1); out.flush(); //close the stream out.close(); System.out.println('Object successfully written to the file'); //Create a stream to read the object ObjectInputStream in=new ObjectInputStream(new FileInputStream('Eddie.txt')); Student s=(Student)in.readObject(); //print the data of the deserialized object System.out.println('Student object: ' + s.id+' '+s.name); //close the stream in.close(); }catch(Exception e){System.out.println(e);} } }
Παραγωγή:
Σημειώστε ότι μετά την αποεπιεριοποίηση, λαμβάνουμε το ίδιο αντικείμενο που έχουμε σειριοποιήσει νωρίτερα καθώς ανοίγουμε ξανά το ίδιο αρχείο.
Μεταβατική λέξη-κλειδί Java
Μια παροδική λέξη-κλειδί χρησιμοποιείται για να κάνει ένα μέλος δεδομένων παροδικό, δηλαδή δεν θέλουμε να το σειριοποιήσουμε.
Για παράδειγμα, Σκεφτείτε την ακόλουθη τάξη Υπάλληλος. Εδώ έχουμε το πεδίο Id υπαλλήλου μαζί με τα άλλα πεδία. Τώρα, εάν αποφασίσουμε ότι το πεδίο Αναγνώριση υπαλλήλου δεν πρέπει να σειριοποιηθεί, τότε το δηλώνουμε ως «παροδικό».
Ένα παράδειγμα προγράμματος Java δίνεται παρακάτω.
import java.io.*; class Employee implements Serializable{ transient int id; String name; public Employee(int id, String name) { this.id = id; this.name = name; } } class Main{ public static void main(String args()){ try{ //Create the object of Employee class Employee s1 =new Employee(27,'Eddie'); //Write the object to the stream by creating a output stream FileOutputStream fout=new FileOutputStream('Eddie.txt'); ObjectOutputStream out=new ObjectOutputStream(fout); out.writeObject(s1); out.flush(); //close the stream out.close(); System.out.println('Object successfully written to the file'); //Create a stream to read the object ObjectInputStream in=new ObjectInputStream(new FileInputStream('Eddie.txt')); Employee s=(Employee)in.readObject(); //print the data of the deserialized object System.out.println('Employee object: ' + s.id+' '+s.name); //close the stream in.close(); }catch(Exception e){System.out.println(e);} } }
Παραγωγή:
Στο παραπάνω πρόγραμμα, έχουμε σειριοποιήσει το αντικείμενο Employee. Ωστόσο, σημειώστε ότι το πεδίο Αναγνωριστικό υπαλλήλου της κατηγορίας Εργαζομένων δηλώνεται «προσωρινό». Τώρα για να ελέγξουμε τη σειριοποίηση, αποστειροποιούμε το αντικείμενο. Η έξοδος δείχνει το αντικείμενο Employee ως «0 Eddie». Αυτό σημαίνει ότι το αναγνωριστικό υπαλλήλου δεν αποθηκεύτηκε στο αρχείο.
Java.io.NotSerializableException In Java
Η εξαίρεση του java.io.NotSerializableException είναι μια εξαίρεση που εμφανίζεται όταν η τάξη δεν είναι κατάλληλη για σειριοποίηση. Η κλάση που δεν εφαρμόζει το Serializable interface καθίσταται μη επιλέξιμη για σειριοποίηση.
Το παρακάτω πρόγραμμα Java δείχνει το NotSerializableException.
import java.io.*; class Employee { transient int id; String name; public Employee(int id, String name) { this.id = id; this.name = name; } } class Main{ public static void main(String args()){ try{ //Create the object of Employee class Employee s1 =new Employee(27,'Eddie'); //Write the object to the stream by creating a output stream FileOutputStream fout=new FileOutputStream('Eddie.txt'); ObjectOutputStream out=new ObjectOutputStream(fout); out.writeObject(s1); out.flush(); //close the stream out.close(); System.out.println('Object successfully written to the file'); }catch(Exception e){System.out.println(e);} } }
Παραγωγή:
Όπως φαίνεται από το παραπάνω πρόγραμμα, η κλάση υπαλλήλων δεν εφαρμόζει τη διεπαφή Serializable. Ως εκ τούτου, όταν προσπαθούμε να σειριοποιήσουμε το αντικείμενο κλάσης υπαλλήλων, το NotSerializableException ρίχνεται.
Κλωνοποιήσιμη διεπαφή στην Java
Η κλωνοποίηση αντικειμένων σημαίνει δημιουργία αντιγράφου των αντικειμένων. Η Java υποστηρίζει την κλωνοποίηση αντικειμένων χρησιμοποιώντας το “ Κλωνοποιήσιμο ' διεπαφή. Η κλωνοποιήσιμη διεπαφή είναι μια διεπαφή δείκτη και είναι μέρος του πακέτου java.lang.
Όταν μια κλάση εφαρμόζει το Cloneable interface, τότε σημαίνει ότι μπορούμε να κλωνοποιήσουμε τα αντικείμενα αυτής της κλάσης. Η κλάση αντικειμένων της Java περιέχει το « κλώνος () Μέθοδος. Έτσι, η διεπαφή Cloneable που εφαρμόζεται από μια συγκεκριμένη κλάση επιτρέπει τη μέθοδο clone () για τη δημιουργία αντιγράφων των παρουσιών τάξης.
Εάν μια κλάση δεν εφαρμόζει μια διεπαφή Cloneable και εξακολουθεί να επικαλείται τη μέθοδο clone (), τότε η εξαίρεση CloneNotSupportedException ρίχνεται από τον μεταγλωττιστή Java.
Οι τάξεις που εφαρμόζουν τη διεπαφή Cloneable πρέπει να παρακάμψουν τη μέθοδο clone ().
Τι είναι λοιπόν η κλωνοποίηση αντικειμένων;
Η κλωνοποίηση αντικειμένων είναι μια διαδικασία με την οποία δημιουργούμε ένα ακριβές αντίγραφο του αντικειμένου χρησιμοποιώντας τη μέθοδο κλώνου () της κλάσης Αντικειμένου. Για την παράκαμψη και επίκληση της μεθόδου clone (), η κλάση πρέπει να εφαρμόσει τη διεπαφή Cloneable.
Η γενική σύνταξη της μεθόδου κλώνου () δίνεται παρακάτω:
προστατευμένο Αντικείμενο κλώνου () ρίχνει CloneNotSupportedException
Η μέθοδος clone () δημιουργεί ένα ακριβές αντίγραφο του αντικειμένου με λιγότερο χρόνο επεξεργασίας από αυτόν που απαιτείται για τη δημιουργία ενός νέου αντικειμένου χρησιμοποιώντας τη νέα λέξη-κλειδί.
Το παρακάτω πρόγραμμα Java δείχνει τη χρήση της μεθόδου clone () και της διασύνδεσης Cloneable.
class Student implements Cloneable{ int rollno; String name; //class constructor Student(int rollno,String name){ this.rollno=rollno; this.name=name; } //clone method public Object clone()throws CloneNotSupportedException{ return super.clone(); } } class Main{ public static void main(String args()){ try{ Student s1=new Student(101,'Lissa'); //clone the s1 object Student s2=(Student)s1.clone(); System.out.println('Original Student object: ' + s1.rollno+' '+s1.name); System.out.println('Cloned Student object: ' + s2.rollno+' '+s2.name); }catch(CloneNotSupportedException c){} } }
Παραγωγή:
Σε αυτό το πρόγραμμα, έχουμε μια τάξη μαθητή που εφαρμόζει τη διεπαφή Cloneable. Επίσης, παρακάμπτει τη μέθοδο clone () καλώντας τη μέθοδο super.clone (). Στην κύρια μέθοδο δημιουργούμε ένα νέο αντικείμενο Student και στη συνέχεια καλούμε τη μέθοδο clone () σε αυτό το αντικείμενο που επιστρέφει το νέο αντικείμενο Student.
Clone Array στην Ιάβα
Εξερευνήσαμε την κλωνοποίηση των συστοιχιών στο σεμινάριό μας για τις συστοιχίες. Δεδομένου ότι οι πίνακες Java εφαρμόζουν το Cloneable interface από προεπιλογή, δεν χρειάζεται να εφαρμοστούν ρητά. Όταν η μονοδιάστατη συστοιχία κλωνοποιείται, δημιουργείται ένα βαθύ αντίγραφο του πίνακα. Όταν μια δισδιάστατη συστοιχία κλωνοποιείται, τότε δημιουργείται ένα ρηχό αντίγραφο.
Η δημιουργία ενός ρηχού αντιγράφου είναι η προεπιλεγμένη συμπεριφορά της μεθόδου κλώνου () στην Java. Αλλά τις περισσότερες φορές επιθυμούμε βαθιά κλωνοποίηση. Στη βαθιά κλωνοποίηση, δημιουργούμε ένα αντίγραφο του μέλους του αντικειμένου ανά μέλος και δημιουργούμε έναν κλώνο που είναι ανεξάρτητος από το αρχικό αντικείμενο. Τυχόν αλλαγές που έγιναν στο αντικείμενο του κλώνου δεν θα αντικατοπτρίζονται στο αρχικό αντικείμενο.
Το ακόλουθο πρόγραμμα Java δείχνει την κλωνοποίηση ενός μονοδιάστατου πίνακα.
class Main { public static void main(String args()) { //define an array int intArray() = {2,6,3,7,1,8}; //invoke clone () method on intArray int cloneArray() = intArray.clone(); //print the arrays. System.out.println('Original intArray:'); for (int i = 0; i Παραγωγή:

Λίστα κλώνων στην Ιάβα
Το παρακάτω πρόγραμμα δείχνει πώς να χρησιμοποιήσετε μια μέθοδο κλώνου () για να κλωνοποιήσετε μια λίστα στην Java.
import java.util.ArrayList; import java.util.Arrays; import java.util.List; // MyList Class implementing cloneable class MyList implements Cloneable { String name1; String name2; // Constructor MyList(String name1, String name2) { this.name1 = name1; this.name2 = name2; } // To print the objects in the desired format @Override public String toString() { return 'Hello ' + name1 + ',' + name2 + '
' ; } // Overriding the clone method @Override protected MyList clone() { return new MyList(name1 , name2); } } class Main { public static void main(String() args) { // Create a list List original = Arrays.asList( new MyList('Sydney','Rose'), new MyList('Joe','Ian')); // Create an empty list List cloned_list = new ArrayList(); // Loop through the list and clone each element for (MyList temp : original) cloned_list.add(temp.clone()); System.out.print(cloned_list); } }
Παραγωγή:

Στο παραπάνω πρόγραμμα, βλέπουμε ότι έχουμε δημιουργήσει μια κλάση MyList που εφαρμόζει τη διεπαφή Cloneable και μέσα σε αυτήν την τάξη, παρακάμπτουμε τη μέθοδο clone () που μας βοηθά να κλωνοποιήσουμε τη Λίστα. Στην κύρια μέθοδο, δημιουργούμε μια λίστα στοιχείων και στη συνέχεια κλωνοποιούμε κάθε στοιχείο της λίστας επαναλαμβανόμενα πάνω από τη λίστα.
Συχνές Ερωτήσεις
Q # 1) Ποια είναι η χρήση του Marker Interface στην Java;
Απάντηση: Η διεπαφή δείκτη που είναι επίσης γνωστή ως «διεπαφή με ετικέτα» επισημαίνει την κλάση και ενημερώνει τον μεταγλωττιστή ότι αυτή η τάξη μπορεί να εφαρμόσει μια ειδική συμπεριφορά.
Ε # 2) Ποιες είναι όλες οι διεπαφές σήμανσης στην Java;
Απάντηση: Serializable, Cloneable και Remote είναι οι διεπαφές που αποτελούν παραδείγματα διεπαφών δεικτών στην Java.
Q # 3) Γιατί είναι δυνατή η σειριοποίηση μιας διεπαφής σήμανσης;
Απάντηση: Η σειριοποιήσιμη διεπαφή δεν έχει μεθόδους ή μεταβλητές μελών. Είναι μια κενή διεπαφή που την ταξινομεί ως Marker Interface.
Q # 4) Μπορεί να εκτελεστεί μια διεπαφή σήμανσης;
Απάντηση: Όχι, το runnable δεν είναι μια διεπαφή δείκτη. Η διεπαφή με δυνατότητα εκτέλεσης δεν είναι κενή και παρέχει μια δήλωση μεθόδου εκτέλεσης () μέσα σε αυτήν.
Q # 5) Γιατί πρέπει να εφαρμόσουμε μια διεπαφή Cloneable;
Απάντηση: Με την εφαρμογή μιας κλωνοποιήσιμης διεπαφής για μια κλάση, υποδεικνύουμε ότι τα αντικείμενα αυτής της κλάσης μπορούν να κλωνοποιηθούν χρησιμοποιώντας τη μέθοδο κλώνου () της κλάσης Αντικειμένων. Εάν μια κλάση που χρησιμοποιεί τη μέθοδο κλώνου () δεν εφαρμόζει μια κλωνοποιήσιμη διεπαφή, τότε η εξαίρεση «CloneNotSupportedException» ρίχνεται.
συμπέρασμα
Με αυτό το σεμινάριο, ολοκληρώσαμε τη συζήτησή μας για τις διασυνδέσεις στην Java. Έχουμε συζητήσει την έννοια των διεπαφών, τη δομή τους, τον ορισμό, τη χρήση κ.λπ. Έχουμε επίσης συζητήσει μερικές από τις σημαντικές διεπαφές σε Java-Comparable, Comparator, Marker interfaces κ.λπ.
Σε αυτό το σεμινάριο, συζητήσαμε δύο παραδείγματα διεπαφών δεικτών, δηλαδή σειριοποιήσιμα και κλωνοποιήσιμα. Μια σειριοποιήσιμη διεπαφή χρησιμοποιείται για να διατηρήσει ένα αντικείμενο. Η κλωνοποιήσιμη διεπαφή χρησιμοποιείται για την κλωνοποίηση των αντικειμένων κλάσης. Και οι δύο αυτές διεπαφές είναι διεπαφές δείκτη, δηλαδή είναι κενές.
Αλλά όταν μια τάξη τα εφαρμόζει, τότε δείχνουν ότι ο μεταγλωττιστής μπορεί να αναμένει κάποια ειδική συμπεριφορά από τις τάξεις που τις εφαρμόζουν.
Για παράδειγμα, όταν μια τάξη εφαρμόζει μια σειριακή δυνατότητα διασύνδεσης, τότε μπορούμε να κάνουμε σειριοποίηση ή αποεστερίωση των αντικειμένων της κλάσης και να αποθηκεύσουμε / ανακτήσουμε την κατάστασή τους.
Μια κλάση που εφαρμόζει μια κλωνοποιήσιμη διεπαφή δείχνει ότι μπορούμε να κλωνοποιήσουμε τα αντικείμενα αυτής της κλάσης. Η προεπιλεγμένη εφαρμογή της μεθόδου κλώνου () δημιουργεί ένα ρηχό αντίγραφο του αντικειμένου ενώ μπορούμε να παρακάμψουμε τη μέθοδο κλώνου () για τη δημιουργία ενός αντιγράφου σε βάθος.
=> Εξερευνήστε την Πλήρη Σειρά Εκπαίδευσης Java εδώ
Συνιστώμενη ανάγνωση
- Ορισμός διεπαφής σε Java: Java Set Tutorial με παραδείγματα
- Διασύνδεση ListIterator σε Java με παραδείγματα
- Ανάπτυξη Java: Δημιουργία και εκτέλεση αρχείου Java JAR
- Και η Java - και η εφαρμογή και οι ορισμοί της
- Βασικά στοιχεία Java: Java Syntax, Java Class και Core Java Concepts
- Αντικείμενο Java Class Vs - Πώς να χρησιμοποιήσετε την κλάση και το αντικείμενο στην Java
- Java Virtual Machine: Πώς βοηθά το JVM στην εκτέλεση της εφαρμογής Java
- Συγκρίσιμες και συγκριτικές διεπαφές στην Java