Il existe deux manières de créer des objets finaux en Java : déclarer une variable finale ou déclarer une classe avec le modificateur final. Lorsque vous déclarez une variable finale, l'objet est créé via un initialiseur ; lorsque vous déclarez une classe finale, l'instance de classe est immuable. Il est important de noter que les références aux objets finaux peuvent toujours changer, mais les objets vers lesquels elles pointent sont immuables.
Comment créer des objets finaux en Java
En Java, le mot-clé final est utilisé pour déclarer des objets immuables. Cela signifie qu’une fois qu’un objet final est créé, il est impossible de changer son état. Ceci est utile pour créer des classes thread-safe et empêcher toute modification accidentelle de données sensibles.
Il existe deux manières principales de créer un objet final :
1 Déclarer une variable finale
La manière la plus simple est de déclarer une variable finale et de l'initialiser à un objet :
public class FinalObjectExample { private final String name; public FinalObjectExample(String name) { this.name = name; } public String getName() { return name; } }
2. classes de modificateur final
Une autre approche consiste à déclarer la classe entière en utilisant le modificateur final. Cela signifie que les instances de la classe sont immuables :
public final class ImmutableClass { private final String value; public ImmutableClass(String value) { this.value = value; } public String getValue() { return value; } }
La chose importante à retenir est qu'une référence à un objet final peut toujours être elle-même mutable. Cela signifie que vous pouvez attribuer une référence à un objet final à une variable différente :
FinalObjectExample obj1 = new FinalObjectExample("John"); FinalObjectExample obj2 = obj1; obj2.getName(); // 返回 "John"
Cependant, vous ne pouvez toujours pas modifier l'objet vers lequel pointe la référence obj1 ou obj2.
Cas pratique
Considérons une classe utilisée pour stocker des données sensibles :
public class SensitiveData { private final int id; private final String value; public SensitiveData(int id, String value) { this.id = id; this.value = value; } public int getId() { return id; } public String getValue() { return value; } }
En déclarant la classe finale, nous pouvons garantir que les données restent inchangées après la création, améliorant ainsi la sécurité.
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!