2 votes

Java - Changement du type de données lors de l'utilisation de Getters & Setters

Je suis tombé sur l'encapsulation en apprenant Java. L'un des avantages de l'utilisation de Getters et Setters, d'après https://www.tutorialspoint.com/java/java_encapsulation.htm c'est :

" Les utilisateurs d'une classe ne savent pas comment la classe stocke ses données. Une classe peut changer le type de données d'un champ et les utilisateurs de la classe n'ont pas besoin de modifier leur code."

Mais je ne suis pas tout à fait sûr de ce que cela signifie. Est-ce que ça veut dire que :

private String name; 

peut être changé en :

private int name; ?

Je serais reconnaissant si quelqu'un pouvait donner un exemple à ce sujet.

0voto

Matt Timmermans Points 3405

Oui, par exemple s'il n'y a qu'un nombre fixe de noms possibles, alors peut-être que la classe changerait de :

class Thing
{
    private String m_name;
    ....
    public String getName()
    {
        return m_name;
    }
    ...
}

a

class Thing
{
    private static String[] POSSIBLE_NAMES = ...

    private int m_nameIndex;
    ....
    public String getName()
    {
        return POSSIBLE_NAMES[m_nameIndex];
    }
    ...
}

L'idée est que le getter indique que l'objet a un nom et peut vous le dire quand vous le demandez, mais l'objet est libre de stocker ou de calculer ce nom comme il le souhaite.

0voto

Sachith Points 1843

Une classe peut modifier le type de données d'un champ

Je pense que c'est une mauvaise chose. Ce n'est pas un type de données, c'est une Modificateurs d'accès Les méthodes publiques sont les points d'accès aux champs de cette classe depuis le monde extérieur de Java. Normalement, ces méthodes sont appelées getters et setters. Par conséquent, toute classe qui veut accéder aux variables doit le faire par le biais de ces getters et setters. private String name; a public String name;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X