Ποια είναι η διαφορά μεταξύ μεταβλητών και αμετάβλητων στην Java;



Αυτό το άρθρο σχετικά με το Mutable and Immutable in Java είναι ένας ολοκληρωμένος οδηγός για τις διαφορές μεταξύ τους και επίσης αναλύει γιατί οι συμβολοσειρές java είναι αμετάβλητες.

Η Java είναι ένα από τα πιο δημοφιλή παρέχει διάφορες έννοιες για τη δημιουργία εφαρμογών, και μία τέτοια έννοια είναι η μεταβλητή και αμετάβλητη στην Java. Λοιπόν, αυτή η ιδέα βασίζεται στην πραγματοποίηση αλλαγών στα πεδία μετά τη δημιουργία αντικειμένων και έτσι διευκολύνει τον προγραμματισμό . Έτσι, σε αυτό το άρθρο σχετικά με μεταβλητές και αμετάβλητες στην Java, θα συζητήσω τα ακόλουθα θέματα:

Τι είναι το αντικείμενο Mutable;





Τα αντικείμενα στα οποία μπορείτε να αλλάξετε τα πεδία και τις καταστάσεις μετά τη δημιουργία του αντικειμένου είναι γνωστά ως μεταβλητά αντικείμενα. Παράδειγμα : java.util.Date, StringBuilder κ.λπ.

Τι είναι το αμετάβλητο αντικείμενο;



ο αντικείμενα στο οποίο δεν μπορείτε να αλλάξετε τίποτα μόλις δημιουργηθεί το αντικείμενο είναι γνωστά ως αμετάβλητα αντικείμενα. Παράδειγμα : Πρωτόγονα αντικείμενα με κουτιά, όπως Integer, Long κ.λπ.

Έτσι, τώρα που ξέρετε τι είναι μεταβλητό και αμετάβλητο στην Java, ας προχωρήσουμε και να δούμε τις διαφορές μεταξύ των δύο.

Διαφορά μεταξύ μεταβλητών και αμετάβλητων αντικειμένων



Μπορείτε να ανατρέξετε στον παρακάτω πίνακα για τις διαφορές μεταξύ μεταβλητών και αμετάβλητων αντικειμένων στην Java.

Ευμετάβλητος Αμετάβλητος
Τα πεδία μπορούν να αλλάξουν μετά τη δημιουργία του αντικειμένουΤα πεδία δεν μπορούν να αλλάξουν μετά τη δημιουργία αντικειμένων
Γενικά παρέχει μια μέθοδο τροποποίησης της τιμής πεδίουΔεν έχει καμία μέθοδο τροποποίησης της τιμής πεδίου
Έχει μεθόδους Getter και SetterΈχει μόνο τη μέθοδο Getter
Παράδειγμα: StringBuilder, java.util.DateΠαράδειγμα: Συμβολοσειρά, πρωτόγονα αντικείμενα με κουτιά, όπως Integer, Long και κ.λπ.

Τώρα που γνωρίζετε τις διαφορές μεταξύ μεταβλητών και αμετάβλητων αντικειμένων, ας εξετάσουμε πώς να τα δημιουργήσουμε τάξεις.

Πώς να δημιουργήσετε μια κλάση Mutable;

Για να δημιουργήσετε μια μεταβλητή τάξη στην Java, πρέπει να βεβαιωθείτε ότι πληρούνται οι ακόλουθες απαιτήσεις:

  1. Δώστε μια μέθοδο για να τροποποιήσετε τις τιμές πεδίου
  2. Μέθοδος Getter and Setter

Εξετάστε τον ακόλουθο κώδικα:

πακέτο edureka δημόσια τάξη παράδειγμα {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} δημόσιο στατικό κενό (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // ενημέρωση του ονόματος, αυτό το αντικείμενο είναι μεταβλητό σύστημα obj.setName ('Machine Learning Masters'). out.println (obj.getName ())}}

Θα δείτε την ακόλουθη έξοδο:

Εξαγωγή μεταβλητού αντικειμένου - Μεταβλητή και αμετάβλητη σε Java-Edureka

Τώρα που ξέρετε πώς να δημιουργήσετε μια μεταβλητή τάξη, στη συνέχεια σε αυτό το άρθρο, ας εξετάσουμε πώς να δημιουργήσουμε μια αμετάβλητη τάξη.

Πώς να δημιουργήσετε μια αμετάβλητη τάξη;

Για να δημιουργήσετε μια αμετάβλητη κλάση στην Java, πρέπει να βεβαιωθείτε ότι πληρούνται οι ακόλουθες απαιτήσεις:

  1. Μια τάξη πρέπει να δηλωθεί ως τελικός έτσι ώστε να μην μπορεί να επεκταθεί.
  2. Όλα τα πεδία πρέπει να είναι ιδιωτικά, ώστε να μην επιτρέπεται η άμεση πρόσβαση
  3. Δεν υπάρχουν μέθοδοι ρύθμισης
  4. Ορίστε όλα τα μεταβλητά πεδία οριστικά, ώστε να μπορούν να αντιστοιχιστούν μόνο μία φορά.
πακέτο edureka δημόσια τάξη exampleimmutable {private final String coursename exampleimmutable (final string String name) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = νέο παράδειγμα ( 'Machine Learning') System.out.println (obj.getName ())}}

Θα δείτε την παρακάτω έξοδο:

Εντάξει, οπότε τώρα που γνωρίζετε για μεταβλητά και αμετάβλητα αντικείμενα, επιτρέψτε μου να σας πω ότι οι χορδές είναι αμετάβλητες στην Java. Τώρα, είμαι βέβαιος ότι αυτό θα μπορούσε να εγείρει ένα ερώτημα, γιατί οι συμβολοσειρές είναι αμετάβλητες στην Java. Έτσι, στη συνέχεια σε αυτό το άρθρο, ας δούμε το ίδιο.

Γιατί οι χορδές είναι αμετάβλητες στην Java;

Η Java χρησιμοποιεί τις έννοιες του . Έτσι, αν σκεφτείτε ένα παράδειγμα όπου έχετε πολλές μεταβλητές αναφοράς που αναφέρονται σε ένα αντικείμενο, τότε ακόμη και αν μία μεταβλητή αναφοράς αλλάζει την τιμή του αντικείμενο , αυτόματα θα επηρεαστούν όλες οι άλλες μεταβλητές αναφοράς. Επίσης, σύμφωνα με Αποτελεσματική Java ,Κεφάλαιο 4, σελίδα 73, 2η έκδοση, οι ακόλουθοι είναι οι λόγοι για τη χρήση αμετάβλητων τάξεων:

  • Τα αμετάβλητα αντικείμενα είναι απλά
  • Αυτά τα αντικείμενα δεν απαιτούν συγχρονισμό και είναι εγγενώς ασφαλή για νήματα
  • Αμετάβλητα αντικείμενα κάνουν καλά δομικά στοιχεία για άλλα αντικείμενα

Αν πρέπει να σας εξηγήσω με ένα παράδειγμα, τότε,

απλή εφαρμογή κατακερματισμού στην Java

Ας πούμε ότι έχετε μια μεταβλητή δειγματοληψία , που αποθηκεύει τη συμβολοσειρά ' Μηχανική εκμάθηση «. Τώρα, εάν συνδυάσετε αυτήν τη συμβολοσειρά με μια άλλη συμβολοσειρά ' Δάσκαλοι ', τότε το αντικείμενο δημιουργήθηκε για ' Μηχανική εκμάθηση 'Δεν θα αλλάξει. Αντ 'αυτού, θα δημιουργηθεί ένα νέο αντικείμενο για το ' Μηχανικοί μάστερ «. Ανατρέξτε στην παρακάτω εικόνα:

Όπως μπορείτε να δείτε στην παραπάνω εικόνα, το δειγματοληψία Η μεταβλητή αναφοράς αναφέρεται στο 'Machine Learning', αλλά όχι στην άλλη συμβολοσειρά, ακόμη και μετά τη δημιουργία δύο αντικειμένων. Με αυτό, καταλήγουμε σε αυτό το άρθρο σχετικά με το Mutable and Immutable στην Java. Ελπίζω να είστε ξεκάθαροι για κάθε πτυχή που έχω συζητήσει παραπάνω.

Τώρα που έχετε κατανοήσει τα βασικά της Java, ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για μαθητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για τις βασικές όσο και για τις προηγμένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'Mutable and Immutable in Java' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.