Les objets mutables ont des champs qui peuvent être modifiés ; les objets immuables n'ont aucun champ pouvant être modifié après la création de l'objet. Les objets immuables sont des objets dont l'état ne peut pas changer après leur création. Mutable et Immutable sont deux catégories d'objets en Java. Dans cet article, nous verrons les différences entre les objets mutables et immuables en Java. Nous verrons également des exemples de code Java montrant les différences entre les classes mutables et immuables en Java.
PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulésVous trouverez ci-dessous les 6 principales différences entre Java mutable et immuable :
Voici les principales différences entre les objets mutables et immuables en Java :
Parlons de la meilleure comparaison entre Java mutable et immuable :
Mutable
|
Immuable |
||||||||||||||
L'objet Java Mutable peut être modifié après sa création. | L'objet Java Immuable ne peut pas être modifié après sa création. | ||||||||||||||
Aucun nouvel objet n'est formé lorsque des modifications sont apportées à un objet existant. | Chaque fois qu'un objet existant est modifié, un nouvel objet est formé. | ||||||||||||||
Il fournit des méthodes pour modifier le contenu d'un objet. | Il ne fournit pas de méthodes pour modifier le contenu d'un objet. | ||||||||||||||
Les méthodes Getter et Setter sont présentes dans les classes mutables. | Seules les méthodes getter sont présentes et non les méthodes setter. | ||||||||||||||
Les classes mutables peuvent ou non être thread-safe. | Les classes immuables sont thread-safe par défaut. | ||||||||||||||
Quelques exemples courants de classes mutables en Java sont StringBuffer, StringBuilder et java.util.Date. | Toutes les classes Legacy, les classes Wrapper et la classe String sont des exemples courants de classes immuables en Java. |
Java mutable et immuable avec des exemples sont donnés ci-dessous :
Nous allons maintenant voir des exemples de code Java montrant la création de classes mutables et immuables en Java.
Code :
package com.edubca.mutabledemo; public class MutableDemo { private String studentName; private int rollNumber; MutableDemo (String studentName, int rollNumber) { this.studentName = studentName; this.rollNumber = rollNumber; } public String getStudentName() { return studentName; } // this setter can modify the name public void setStudentName(String studentName) { this.studentName = studentName; } public int getRollNumber() { return rollNumber; } // this setter can modify roll number public void setRollNumber(int rollNumber) { this.rollNumber = rollNumber; } public static void main(String[] args) { MutableDemo obj = new MutableDemo ("John" , 100); System.out.println("Original Name is " + obj.getStudentName()); System.out.println("Original Roll Number is " + obj.getRollNumber()); // update the name, and roll number as is mutable obj.setStudentName("James"); obj.setRollNumber(102); System.out.println("Modified Name is " + obj.getStudentName()); System.out.println("Modified Roll Number is " + obj.getRollNumber()); } }
Sortie :
Le code ci-dessus montre la création d'une classe mutable en Java avec des getters et des setters.
Nous allons maintenant voir comment créer des classes immuables en Java.
Code :
package com.edubca.immutabledemo; public final class ImmutableDemo { final String studentName; final int rollNumber; public ImmutableDemo (String studentName, int rollNumber) { this.studentName = studentName; this.rollNumber = rollNumber; } public String getStudentName() { return studentName; } public int getRollNumber() { return rollNumber; } public static void main(String[] args) { ImmutableDemo obj = new ImmutableDemo ("John" , 100); // Since no getters are available contents cannot be modified. // Also as variables are declared final they cannot be modified System.out.println("Name is " + obj.getStudentName()); System.out.println("Roll Number is " + obj.getRollNumber()); } }
Sortie :
Le code ci-dessus montre la création de la classe immuable Java. Les points suivants doivent être gardés à l'esprit lors de la création d'une classe immuable :
D'après la discussion ci-dessus, nous comprenons clairement les différences entre mutable et immuable en Java. Nous avons également vu des exemples Java montrant comment les classes mutables et immuables sont créées. Il est important de noter que les classes immuables sont par défaut thread-safe, alors que les classes mutables peuvent ou non être thread-safe.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!