164 votes

Quelle est la différence entre champ, variable, attribut et propriété dans les POJO de Java ?

Lorsque je me réfère aux variables privées internes des POJO Java qui ont des getters/setters, j'utilise les termes suivants :

  • champ
  • variable
  • attribut
  • propriété

Y a-t-il une différence entre les deux ? Si oui, quel est le terme correct à utiliser ? Y a-t-il un terme différent à utiliser lorsque cette entité est persistante ?

0voto

Koray Tugay Points 1885

Ma compréhension est la suivante, et je ne dis pas que c'est 100% correct, je pourrais aussi bien me tromper

A variable est quelque chose que vous déclarez, qui peut par défaut changer et avoir des valeurs différentes, mais qui peut aussi être dit explicitement comme étant définitif. En Java, ce serait :

public class Variables {

    List<Object> listVariable; // declared but not assigned
    final int aFinalVariableExample = 5; // declared, assigned and said to be final!

    Integer foo(List<Object> someOtherObjectListVariable) {
        // declare..
        Object iAmAlsoAVariable;

        // assign a value..
        iAmAlsoAVariable = 5;

        // change its value..
        iAmAlsoAVariable = 8;

        someOtherObjectListVariable.add(iAmAlsoAVariable);

        return new Integer();
    }
}

Donc, fondamentalement, une variable est tout ce qui est déclaré et qui peut contenir des valeurs. La méthode foo ci-dessus renvoie une variable par exemple . Elle renvoie une variable de type Integer qui contient l'adresse mémoire du nouveau Integer() ; Tout ce que vous voyez ci-dessus sont aussi des variables, listVariable, aFinalVariableExample et expliqué ici :

Un champ est une variable dont la portée est plus claire (ou concrète). La portée de la variable retournée par la méthode foo n'est pas claire dans l'exemple ci-dessus, donc je ne l'appellerais pas un champ. D'autre part, iAmAlsoVariable est un champ "local", limité par la portée de la méthode foo, et listVariable est un champ "d'instance" où la portée du champ (variable) est limitée par la portée des objets.

Une propriété est un champ auquel on peut accéder ou qu'on peut modifier. Tout champ qui expose un getter / setter est une propriété.

Je ne connais pas l'attribut et je tiens également à répéter que c'est ma compréhension de ce que sont les variables, les champs et les propriétés.

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