Passer au contenu de cette vue

Glossaire du MOOC Programmation Objet


Alias

Un alias est un nom permettant de désigner un objet ou un tableau. Il s'agit d'un nom de variable. Le terme d'alias est surtout utilisé lorsqu'il y a plusieurs noms permettant de désigner le même objet. On peut par exemple dire que x est un alias d'y si x et y désignent le même objet. Autrement dit si les deux variables x et y contiennent la même adresse.

Allocation de mémoire

L'allocation mémoire est l'opération qui consiste à attribuer un espace mémoire libre jusqu'ici pour stocker les données d'une méthode , d'un objet ou d'un tableau. Dans le cas d'une méthode, l'espace mémoire est allouée dans le pile et contient les paramètres et variables locales de la méthode. Dans le cas d'un objet, la mémoire est allouée dans le tas . Elle contient les attributs de l'objet et une façon de connaître la classe dont l'objet est une instance . Dans le cas d'un tableau, la mémoire est également allouée dans le tas et contient les cases du tableau.

Attribut

Un attribut, qui peut également être appelé variable d'instance, est une donnée stockée dans un objet . Cette donnée a un type , un nom et une valeur . Le nom et le type sont définis dans la classe dont l'objet est une instance . La valeur n'est généralement pas spécifiée dans la classe mais dépend de l'histoire de l'objet: sa création et les différentes invocations de méthodes qui ont été réalisées sur l'objet. La valeur de l'attribut est stockée dans la mémoire allouée à l'objet dans le tas .


Classe

Une classe est un modèle permettant de créer des objets par l'opération d' instanciation . Elle comprend différents éléments: les types et noms des attributs , les méthodes d'instance , et les constructeurs permettant d'initialiser les objets. Une classe est également un type utilisable pour déclarer des variables, des paramètres ou le type du résultat d'une méthode.

Cohérence

La cohérence d'un objet est la propriété de correspondance entre l'objet-composant logiciel et la réalité qu'il représente dans le programme. Un objet est incohérent s'il ne correspond à aucune réalité. Par exemple, une date contenant un jour à 31 et un mois à février ne correspond pas à une date réelle. Ce type de cohérence concerne l' état de l'objet. La cohérence peut aussi concerner non pas un état donné mais une séquence d'états qui sont cohérents chacun mais ne peuvent pas décrire l'évolution de la réalité correspondante. Par exemple, 2-0 et 1-3 sont deux états possibles pour un score de foot, mais au cours d'un match, on ne peut jamais passer d'un score de 2-0 à un score de 1-3. C'est au programmeur d'assurer la cohérence des objets et de leurs évolutions car le compilateur ne connaît pas les réalités que le programme représente (il ne connaît ni les dates, ni le foot). Cette cohérence doit être assurée dès la création de l'objet par le constructeur, puis à chaque modification de l'état par une méthode .

Constructeur

Un constructeur est un composant d'une classe utilisé pour créer des objets par instanciation . Le constructeur est invoqué au moyen de l'opérateur new. Un constructeur ressemble à une méthode : il a des paramètres et une séquence d'instructions. La valeur des paramètres est donnée lors de l'appel avec new. Mais à la différence d'une méthode, il ne s'invoque pas sur un objet existant mais sur un nouvel objet qui est en cours de création. Lors de l'exécution des instructions du constructeur, l' allocation de mémoire pour l'objet a déjà été réalisée et les attributs existent. Le constructeur est utilisé pour donner une valeur initiale à ces attributs. Il doit assurer que l'objet créé est dans un état cohérent.


Encapsulation

Concept important de la programmation objet non abordé dans ce MOOC.

Etat

L'état d'un objet est le contenu de la mémoire qui lui a été allouée. C'est l'ensemble des valeurs de ses attributs. Cet état peut évoluer au fil du temps, notamment via l' invocation de méthodes qui changent les valeurs des attributs. Typiquement, les méthodes appelées setXXX (par exemple setYear pour la classe Date) sont des méthodes qui modifient l'état d'un objet. Certains objets ont un état qui ne varie jamais au fil du programme, c'est par exemple le cas des chaînes de caractères. On dit que ces objets sont immutables ou immuables. Ceux dont l'état peut varier sont dit mutables .

Expression

Une expression en Java est un morceau de code permettant de calculer une valeur . Cela peut être une valeur littérale, une variable, une invocation de méthode renvoyant un résultat ou une expression composée comportant un ou plusieurs opérateurs avec éventuellement des parenthèses. Généralement, une expression est une portion d'une instruction:

  • à droite d'une affectation, elle permet de déterminer la valeur à stocker dans la variable.
  • entre les parenthèses d'une invocation de méthode, elle permet de déterminer la valeur d'un paramètre de la méthode.
  • après le mot-clé return, elle permet de déterminer la valeur renvoyée par une méthode.

Héritage

Concept important de la programmation objet non abordé dans ce MOOC.


Identité

L'identité de l'objet est ce qui ne varie jamais au fil de l'exécution du programme. Cette identité reste la même de la création de l'objet jusqu'à la fin de sa vie. La classe utilisée pour créer l'objet par instanciation fait partie de cette identité. Le type et le nom des attributs, ainsi que les méthodes existant dans l'objet font également partie de l'identité. L'emplacement en mémoire de l'objet dans le tas est également un élément de l'identité. Il caractérise de manière unique un objet de la même façon qu'un numéro INSEE (numéro de sécurité sociale) identifie de façon unique une personne résidente en France. Les valeurs des attributs d'un objet peuvent également faire partie de l'identité si elles sont fixées au moment de la création et ne peuvent jamais changer au fil des invocations de méthodes .

Instance

Une instance d'une classe est un objet créé à partir de cette classe par l'opération d' instanciation . Ce nom d'instance est un anglicisme: instance signifie cas en anglais. En français, ce mot à d'autres sens qui ne semblent pas avoir de rapport avec cette notion de la programmation objet.

Instanciation

Opération qui consiste à créer un objet à partir d'une classe. Cette opération est généralement réalisée par l'opérateur new et un appel à un constructeur de la classe. Cette opération comprend l' allocation de mémoire pour l'objet dans la tas . Dans cette mémoire, des espaces sont réservés pour chacun des attributs de l'objet. Puis les instructions du constructeur sont exécutées. A l'issue de l'instanciation, l'objet existe avec son identité immuable et son état initial.

Invocation de méthode

L'invocation de méthode est une instruction ou une portion d'instruction qui comprend d'abord l'objet dans lequel il faut chercher la méthode, un point, le nom de la méthode, et entre parenthèses, les valeurs à donner aux paramètres de la méthode lors de l'exécution précise qui est demandée par cette invocation. À l'exécution, cette invocation se traduira par une successions d'étapes:

  1. calcul des valeurs des paramètres données entre parenthèses.
  2. allocation de mémoire dans la pile pour cette invocation de méthode. Les paramètres sont stockés dans cette mémoire avec les valeurs calculées à l'étape précédente.
  3. les instructions de la méthode sont exécutées l'une après l'autre.
  4. la mémoire réservée à cette invocation est effacée, rendue disponible pour d'autres choses.
  5. éventuellement, la valeur calculée par la méthode est renvoyée.

Mutable/Immutable

Un objet est dit mutable s'il contient une ou plusieurs méthodes qui permettent de changer son état, notamment les valeurs de ses attributs. Un objet est dit immutable si son état est constant depuis sa création jusqu'à sa destruction.

Mémoire

La mémoire de l'ordinateur est divisée en plusieurs zones, chacune étant réservée à l'usage exclusif d'un des programmes en cours d'exécution dans l'ordinateur. Une telle zone est attribuée à l'exécution d'un programme Java au cours de son exécution. Cette zone est elle-même découpée en plusieurs parties: la pile , le tas et la mémoire des classes . A la fin de l'exécution du programme, toute la zone mémoire est rendue libre pour être éventuellement utilisée pour exécuter un autre programme.

Mémoire des classes

Espace de la mémoire réservée au programme et qui contient une réprésentation des classes utilisées dans le programme. C'est dans cette mémoire que sont stockées les méthodes et les instructions (aussi bien pour les méthodes de classe que pour les méthodes d'instance .

Méthode

Composant d'un programme qui comporte des paramètres, une séquence d'instructions et qui renvoie ou non une valeur . Une méthode peut être invoqué , c'est à dire utilisée avec des valeurs données aux paramètres. Il existe deux sortes de méthodes: les méthodes d'instance qui existent dans les objets et les méthodes de classe qui existent dans les classes.

Méthode d'instance

méthode définie dans une classe et qui existe dans chacun des objets instances de cette classe. Ce type de méthodes ne peut être invoquée que sur un objet. Les méthodes d'instances se distinguent des méthodes de classe . Quand on dit méthode tout court, il s'agit généralement d'une méthode d'instance.

Méthode de classe

Appelée aussi méthode statique, une méthode de classe existe sans qu'il soit nécessaire de créer un objet. Cette méthode peut être invoquée sur la classe. Par exemple la méthode Math.random() qui renvoie un double au hasard compris entre 0 et 1 est une méthode de classe de la classe Math. Un autre exemple de méthode de classe est la méthode main: elle peut être exécutée sans qu'il soit nécessaire de créer un objet auparavant. Elle est invoquée automatiquement par l'interpréteur Java.

Méthode statique

Voir méthode de classe .


Objet

Un objet est un composant de programme regroupant des données stockées dans des attributs et des traitements qui sont des méthodes d'instance . Un objet est créé par instanciation d'une classe . On dit que l'objet est une instance de cette classe. Un objet a une identité qui ne varie jamais au cours du programme et un état qui peut varier au fil des invocations de méthodes effectuées sur l'objet.


Paramètre

Un paramètre est une donnée nécessaire à l'exécution d'une méthode mais qui peut varier d'une invocation de la méthode à l'autre. Dans le code de la méthode, un nom et un type spécifient cette donnée. La valeur est donnée au paramètre lors de l' invocation de méthode , entre parenthèses. Le lien entre une valeur et un paramètre se fait au moyen de la position de la valeur: la première valeur apparaissant entre parenthèses est affectée au premier paramètre, la deuxième valeur au deuxième paramètre, etc. Le nom du paramètre n'intervient pas dans la transmission des valeurs entre l'invocation et la méthode.

Pile

Espace mémoire dans lequel sont stockées les paramètres et les variables locales des méthodes. Comme dans une pile de dossier, on ne peut regarder que l'élément qui est en haut de la pile. Le haut de la pile contient l'espace mémoire réservé pour la méthode en cours d'exécution. Lors de l'exécution d'une invocation de méthode , un nouvel espace est alloué en sommet de pile avec les paramètres contenant les valeurs données dans l'invocation. A la fin de l'exécution d'un méthode (instruction return ou après l'exécution de la dernière instruction de la méthode), l'espace réservé en sommet de pile est effacé et rendu libre pour un autre usage éventuel.

Polymorphisme

Concept important de la programmation objet non abordé dans ce MOOC.


Référence

Adresse d'un objet ou d'un tableau dans le tas. Les variables des types référence contiennent des références à de valeurs du type correspondant. La référence d'un objet ou d'un tableau est renvoyée par l'opérateur new lors de la création de l'objet ou du tableau.


Scanner

Un scanner est un objet permettant de transformer une séquence d'octets brute en données des types primitifs et des chaînes de caractères. Concrètement, on l'utilise souvent pour lire au clavier des données de type, int, char, boolean, double ou String. Il faut pour créer un tel objet instancier la classe java.util.Scanner en donnant au constructeur de cette classe System.in comme paramètre (new java.util.Scanner(System.in)).

Sous-classe

Concept important de la programmation objet non abordé dans ce MOOC.

Super-classe

Concept important de la programmation objet non abordé dans ce MOOC.


Tas

Espace mémoire dans lequel sont stockés les objets et les tableaux. L' allocation de mémoire dans le tas est effectuée par l'opérateur new, aussi bien dans le cas d'un objet que d'un tableau. En Java, il n'y a pas d'instruction pour libérer l'espace mémoire allouée à un objet ou un tableau: on peut considérer que l'espace mémoire reste occuppé jusqu'à la fin de l'exécution du programme.

Type

Un type est un ensemble de valeurs. Java comporte trois sortes de types: les types primtifs , les types tableaux et les classes. Ces deux derniers sont appelés les types références . Les types sont utilisés pour déclarer des variables, des paramètres de méthodes et spécifier le type du résultat des méthodes qui renvoient un résultat.

Type primitif

Les types primitifs sont un petit nombre de types prédéfinis comprenant int, double, char et boolean. Les valeurs de ces types n'ont pas besoin d'être créées pour être utilisées. Les variables de ces types contiennent directement ces valeurs qui peuvent apparaître dans la pile, comme valeur d'une variable locale de méthode ou comme valeur d'un paramètre de méthode.

Type référence

Les types références sont les classes et les types tableaux. Les valeurs de ces types doivent être créées au moyen d'un new (ou équivalent d'un new) avant d'être utilisées. Les valeurs sont stockées dans le tas et les variables de ces types contiennent non pas les valeurs directement mais les références ou adresses de ces valeurs.


Valeur

Une valeur est une donnée pouvant être stockée dans une variable, un attribut ou un tableau. Une valeur appartient toujours à un type. Cette valeur peut être d'un type primitif (int, double, boolean, char), d'un type tableau ou d'un type objet. Dans ces deux derniers cas, la valeur est une {référence}, c'est-à-dire l'adresse de l'objet ou du tableau dans le tas .

Variable d'instance

Voir attribut .

Variable locale

Variable déclarée dans une méthode. Une telle variable n'existe que le temps de l'exécution d'une invocation de méthode . Plus précisément, un espace mémoire est alloué à cette variable dans la pile, dans l'espace alloué à l'exécution de la méthode qui contient cette variable, au moment où la déclaration est exécutée. La variable cesse d'exister au plus tard à la fin de l'exécution de la méthode, quand l'espace mémoire alloué à l'invocation de méthode correspondante est effacé et libéré. Ainsi, chaque méthode a ses propres variables qu'on ne peut pas utiliser dans les instructions des autres méthodes. Ce n'est pas le cas des attributs des objets qui existent dans le tas et peuvent être utilisés au cours de différentes invocations de méthodes.