Maison  >  Article  >  Java  >  Comment les objets finaux sont-ils créés en Java ?

Comment les objets finaux sont-ils créés en Java ?

WBOY
WBOYoriginal
2024-04-11 14:00:02798parcourir

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 les objets finaux sont-ils créés en Java ?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn