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 ?

3voto

rarora25 Points 71

La différence entre un variable, champ, attribut et propriété en Java :

Une variable est le nom donné à un emplacement mémoire. C'est l'unité de base de stockage dans un programme.

Un champ est une donnée membre d'une classe. Sauf indication contraire, un champ peut être public, statique, non statique et final.

Un attribut est un autre terme pour désigner un champ. Il s'agit généralement d'un champ public auquel on peut accéder directement.

  • Dans NetBeans ou Eclipse, lorsque nous tapons l'objet d'une classe et après le point (.), ils donnent quelques suggestions qui sont appelées Attributs.

Une propriété est un terme utilisé pour les champs, mais il a généralement une combinaison getter et setter.

2voto

the_prole Points 71

Les variables sont composées de champs et de non champs.

Les champs peuvent être soit :

  1. Champs statiques ou
  2. champs non statiques également appelés instanciations, par exemple x = F()

Les non-champs peuvent être soit :

  1. des variables locales, analogues aux champs mais à l'intérieur d'une méthode plutôt qu'à l'extérieur de toutes les méthodes, ou encore
  2. paramètres, par exemple, y dans x = f(y)

En conclusion, la distinction clé entre les variables est de savoir si elles sont des champs ou des non champs, c'est-à-dire si elles sont à l'intérieur d'une méthode ou en dehors de toutes les méthodes.

Exemple de base (excusez-moi pour ma syntaxe, je ne suis qu'un débutant)

Class {    
    //fields    

    method1 {              
         //non-fields    

    }    
}

1voto

Sagar Patel Points 370

En fait, ces deux termes sont souvent utilisés pour représenter la même chose, mais il existe quelques situations exceptionnelles. Un champ peut stocker l'état d'un objet. De plus, tous les champs sont des variables. Il est donc clair qu'il peut y avoir des variables qui ne sont pas des champs. En examinant les 4 types de variables (variable de classe, variable d'instance, variable locale et variable de paramètre), nous pouvons voir que les variables de classe et d'instance peuvent affecter l'état d'un objet. En d'autres termes, si une variable de classe ou d'instance change, l'état de l'objet change. On peut donc dire que les variables de classe et les variables d'instance sont des champs alors que les variables locales et les variables de paramètre ne le sont pas.

Si vous voulez comprendre plus en profondeur, vous pouvez vous rendre sur la source ci-dessous :-.

http://sajupauledayan.com/java/fields-vs-variables-in-java

1voto

yoAlex5 Points 2350
  • variable - adresse de stockage nommée. Chaque variable a un type qui définit une taille de mémoire, des attributs et des comportements. Il existe quatre types de variables Java : class variable , instance variable , local variable , method parameter

    //pattern <Java_type> <name> ;

    //for example int myInt; String myString; CustomClass myCustomClass;

  • field - variable membre ou membre de données. Il s'agit d'une variable à l'intérieur d'un class ( class variable o instance variable )

  • attribute - dans certains articles, vous pouvez trouver que attribute il s'agit d'un object représentation de class variable . Object fonctionne par attributes qui définissent un ensemble de caractéristiques.

    CustomClass myCustomClass = new CustomClass(); myCustomClass.myAttribute = "poor fantasy"; //myAttribute is an attribute of myCustomClass object with a "poor fantasy" value

[attributs Objective-C]

  • property - field + borné getter/setter . Il possède une syntaxe de champ mais utilise des méthodes sous le capot. Java ne le supporte pas à l'état pur. Jetez un coup d'œil à Objective-C , Swift , Kotlin

Par exemple Kotlin échantillon :

//field - Backing Field
class Person {
    var name: String = "default name"
        get() = field
        set(value) { field = value }
}

//using
val person = Person()
person.name = "Alex"    // setter is used
println(person.name)    // getter is used

[variable Swift, propriété...]

0voto

Peter Clause Points 962

La question est ancienne, mais une autre différence importante entre une variable et un champ est qu'un champ reçoit une valeur par défaut lorsqu'il est déclaré, alors qu'une variable doit être initialisée.

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