Vidéo: APPRENDRE LE JAVA #7 - LES OBJETS 2024
La programmation orientée objet est un type de programmation informatique - comme Java - basé sur le principe que tous les programmes sont simulations essentiellement informatisées d'objets du monde réel ou de concepts abstraits. Par exemple:
-
Les simulateurs de vol tentent d'imiter le comportement des vrais avions.
-
De nombreux jeux sur ordinateur sont des simulations de jeux réels que jouent les humains, comme le baseball, les courses de NASCAR et les échecs.
-
Même les programmes métier peuvent être considérés comme des simulations de processus métier, tels que la prise de commande, le service client, l'expédition et la facturation.
Les objets sont des entités de programmation ayant certaines caractéristiques de base:
-
Identité: Chaque objet dans un programme orienté objet a une identité . En d'autres termes, chaque occurrence d'un type particulier d'objet -an instance - peut être distinguée de toutes les autres occurrences du même type d'objet ainsi que d'autres types d'objets.
Chaque instance d'objet a son propre emplacement dans la mémoire de l'ordinateur. Ainsi, deux objets, même s'ils peuvent être du même type, ont leurs propres emplacements de mémoire distincts. L'adresse de l'emplacement de départ pour un objet fournit un moyen de distinguer un objet d'un autre parce qu'aucun objet ne peut occuper le même emplacement en mémoire.
Java garde à peu près l'identité de chaque objet. En d'autres termes, il n'y a pas de moyen facile d'obtenir l'adresse mémoire d'un objet; Java estime que cela ne vous regarde pas et à juste titre. Si Java vous rendait cette information facilement accessible, vous seriez tenté de la bricoler, ce qui pourrait causer toutes sortes de problèmes, comme n'importe quel programmeur C ou C ++ peut vous le dire.
Les objets Java ont quelque chose appelé un code de hachage , qui est une valeur int générée automatiquement pour chaque objet et presque représente l'identité de l'objet. Dans la plupart des cas, le code de hachage d'un objet est basé sur l'adresse de la mémoire de l'objet, mais pas toujours. Java ne garantit pas que deux objets distincts n'auront pas le même code de hachage.
Lorsqu'il est utilisé avec des objets, l'opérateur d'égalité (==) teste réellement l'identité de l'objet de deux variables ou expressions. S'ils se réfèrent à la même instance d'objet, les deux variables ou expressions sont considérées comme égales.
-
Type: La programmation orientée objet vous permet d'attribuer des noms aux différents types d'objets dans un programme. En Java, les classes définissent des types. Par conséquent, lorsque vous créez un objet à partir d'un type, vous dites que l'objet est du type spécifié par la classe.L'exemple d'instruction suivant crée un objet de type Facture:
Facture i = nouvelle Facture ();
Dans ce cas, l'identité de cet objet (c'est-à-dire son adresse en mémoire) est affectée à la variable i, que le compilateur sait détenir des références aux objets de type Invoice.
-
Etat: Bien que chaque instance d'un type d'objet donné ait les mêmes attributs, chaque instance a un état différent: c'est-à-dire une combinaison différente de valeurs pour chacun de ses attributs.
Bien que certains attributs d'un objet soient publics, d'autres peuvent être privés. Les attributs privés peuvent être vitaux pour le fonctionnement interne de l'objet, mais personne en dehors de l'objet ne sait qu'ils existent. Ils sont comme vos pensées privées: Ils affectent ce que vous dites et faites, mais personne ne les connaît, sauf vous.
-
Comportement: Une autre caractéristique des objets est qu'ils ont un comportement , ce qui signifie qu'ils peuvent faire des choses. Comme l'état, le comportement spécifique d'un objet dépend de son type. Contrairement à l'état, le comportement n'est pas différent pour chaque instance d'un type.
Supposons que tous les élèves d'une classe aient des calculatrices du même type. Demandez-leur de sortir les calculatrices et d'ajouter deux chiffres. Toutes les calculatrices affichent un nombre différent, mais elles s'ajoutent toutes de la même manière; c'est-à-dire qu'ils ont tous un état différent mais le même comportement.
Une autre façon de dire que les objets ont un comportement est de dire qu'ils fournissent des services qui peuvent être utilisés par d'autres objets. Vous avez probablement déjà vu beaucoup d'exemples d'objets qui fournissent des services à d'autres objets. Les objets créés à partir de la classe NumberFormat, par exemple, fournissent des services de mise en forme qui transforment les valeurs numériques en chaînes bien formatées, telles que 32 $. 95.
En Java, le comportement d'un objet est fourni par ses méthodes. Ainsi, la méthode de formatage de la classe NumberFormat est ce qui fournit le comportement de mise en forme pour les objets NumberFormat.