Table des matières:
Vidéo: 5 - La programmation orientée objet en Java, les classes et objets Java 2024
Java est orienté objet. Qu'est-ce que ça veut dire? À la différence des langues, telles que FORTRAN, qui se concentrent sur l'impératif de donner à l'ordinateur les commandes «Faites ceci / Faites cela», les langages orientés objet se concentrent sur les données. Bien sûr, les programmes orientés objet indiquent toujours à l'ordinateur ce qu'il doit faire. Ils commencent, cependant, en organisant les données, et les commandes viennent plus tard.
Les langages orientés objet sont meilleurs que les langages «Do this / Do that» parce qu'ils organisent les données de manière à permettre aux gens de faire toutes sortes de choses avec. Pour modifier les données, vous pouvez vous baser sur ce que vous avez déjà, plutôt que d'abandonner tout ce que vous avez fait et recommencer chaque fois que vous avez besoin de faire quelque chose de nouveau. Bien que les programmeurs informatiques soient généralement des gens intelligents, ils ont pris un certain temps pour comprendre cela.
Objets et leurs classes
Dans un langage orienté objet, vous utilisez les objets et classes pour organiser vos données.
Imaginez que vous écrivez un programme informatique pour suivre les maisons dans un nouveau développement de condominiums (encore en construction). Les maisons ne diffèrent que légèrement les unes des autres. Chaque maison a une couleur de bardage distinctive, une couleur de peinture d'intérieur, un style d'armoires de cuisine et ainsi de suite. Dans votre programme informatique orienté objet, chaque maison est un objet.
Mais les objets ne sont pas toute l'histoire. Bien que les maisons diffèrent légèrement les unes des autres, toutes les maisons partagent la même liste de caractéristiques. Par exemple, chaque maison a une caractéristique connue sous le nom de couleur de bardage. Chaque maison a une autre caractéristique connue sous le nom de style d'armoires de cuisine. Dans votre programme orienté objet, vous avez besoin d'une liste principale contenant toutes les caractéristiques qu'un objet maison peut posséder. Cette liste de caractéristiques est appelée classe .
Alors vous l'avez. La programmation orientée objet est mal nommée. Il devrait vraiment être appelé "programmation avec des classes et des objets. "
Notez que le mot classes figurait en premier? Réfléchissez encore à un projet de construction de logements en construction. Quelque part sur le terrain, dans une remorque branlante garée sur la saleté nue, est une liste maîtresse de caractéristiques connues comme un plan. Le plan d'un architecte ressemble à une classe de programmeur orienté objet. Un plan est une liste de caractéristiques que chaque maison aura. Le plan dit, "revêtement. "L'objet réel de la maison a un bardage gris. Le plan dit, "armoires de cuisine. "L'objet réel de la maison a des armoires de cuisine Louis XIV.
Un an après avoir créé le plan, vous l'utilisez pour construire dix maisons. C'est la même chose avec les classes et les objets. Tout d'abord, le programmeur écrit du code pour décrire une classe. Ensuite, lorsque le programme s'exécute, l'ordinateur crée des objets à partir de la classe (blueprint).
Voilà la véritable relation entre les classes et les objets. Le programmeur définit une classe et, à partir de la définition de la classe, l'ordinateur crée des objets individuels.
Qu'y a-t-il de si bon dans un langage orienté objet?
Imaginez que vous avez déjà écrit un programme informatique pour suivre les instructions de construction des maisons dans un nouveau développement. Ensuite, le grand patron décide d'un plan modifié - un plan dans lequel la moitié des maisons ont trois chambres, et l'autre moitié en a quatre.
Si vous utilisez l'ancien style de programmation informatique FORTRAN / C, vos instructions ressemblent à ceci:
Creuser un fossé pour le sous-sol.
Poser du béton sur les côtés du fossé.
Mettez deux par quatre sur les côtés pour le cadre du sous-sol.
…
Ce serait comme un architecte créant une longue liste d'instructions au lieu d'un plan. Pour modifier le plan, vous devez trier la liste pour trouver les instructions pour la construction des chambres. Pour aggraver les choses, les instructions pourraient être dispersées entre les pages 234, 394-410, 739, 10 et 2. Si le constructeur devait déchiffrer les instructions compliquées des autres, la tâche serait dix fois plus difficile.
Commencer avec un cours, c'est comme commencer avec un plan. Si vous décidez d'avoir des maisons de trois et quatre chambres, vous pouvez commencer par un plan appelé le plan maison qui a un rez-de-chaussée et un deuxième étage, mais n'a pas de murs intérieurs dessinés au deuxième étage. Ensuite, vous faites deux autres plans au deuxième étage - un pour la maison de trois chambres et un autre pour la maison de quatre chambres. (Vous nommez ces nouveaux plans le plan maison à trois chambres et le plan maison à quatre chambres .
Vos collègues bâtisseurs sont impressionnés par votre sens de la logique et de l'organisation, mais ils ont des préoccupations. Ils posent une question. "Vous avez appelé l'un des plans le plan" maison de trois chambres ". Comment pouvez-vous faire cela si c'est un plan pour un deuxième étage et non pour toute une maison? "
Vous souriez sciemment et répondez:" Le plan de la maison de trois chambres peut dire: "Pour plus d'informations sur les étages inférieurs, voir le plan d'origine de la maison. «De cette façon, le plan de maison de trois chambres décrit toute une maison. Le plan de maison de quatre chambres peut dire la même chose. Avec cette configuration, nous pouvons tirer parti de tout le travail que nous avons déjà fait pour créer le plan d'origine de la maison et économiser beaucoup d'argent. "
Dans le langage de la programmation orientée objet, les classes de maisons à trois et quatre chambres ont hérité de les caractéristiques de la classe maison d'origine. Vous pouvez également dire que les classes de maison de trois et quatre chambres sont prolongeant la classe de la maison d'origine.
La classe maison d'origine s'appelle la super classe des classes de maisons de trois et quatre chambres.Dans cette veine, les classes de maisons de trois et quatre chambres sont sous-classes de la classe de la maison d'origine. Autrement dit, la classe de la maison d'origine est appelée la classe parente des classes de maison de trois et quatre chambres. Les classes de maisons de trois et quatre chambres sont classes d'enfants de la classe de la maison d'origine.
Inutile de dire que vos collègues constructeurs sont jaloux. Une foule de constructeurs de maisons se presse autour de vous pour entendre parler de vos bonnes idées. Donc, à ce moment-là, vous laissez tomber une autre bombe: "En créant une classe avec des sous-classes, nous pouvons réutiliser le plan dans le futur. Si quelqu'un vient et veut une maison de cinq chambres, nous pouvons étendre notre plan de maison d'origine en faisant un plan de maison de cinq chambres à coucher. Nous n'aurons jamais à dépenser de l'argent pour un plan de maison original à nouveau. "
" Mais, "dit un collègue dans la rangée arrière," que se passe-t-il si quelqu'un veut un design différent au premier étage? Trompons-nous le plan de la maison d'origine ou commençons-nous à griffonner tout le plan d'origine? Ça va coûter beaucoup d'argent, n'est-ce pas? "
D'un ton confiant, vous répondez:" Nous n'avons pas à jouer avec le plan original de la maison. Si quelqu'un veut un jacuzzi dans son salon, nous pouvons faire un nouveau petit plan décrivant seulement le nouveau salon et appeler cela le plan Jacuzzi-dans-salon-maison . Ensuite, ce nouveau plan peut se référer au plan de la maison d'origine pour plus d'informations sur le reste de la maison (la partie qui n'est pas dans le salon). "Dans le langage de la programmation orientée objet, le plan de la maison Jacuzzi-dans-le-salon" étend le plan original de la maison. Le plan de Jacuzzi est toujours une sous-classe du plan d'origine de la maison. En fait, toute la terminologie concernant la superclasse, la classe parent et la classe enfant s'applique toujours. La seule chose qui est nouvelle, c'est que le plan de Jacuzzi remplace les caractéristiques du salon dans le plan d'origine de la maison.
Dans les jours précédant les langages orientés objet, le monde de la programmation a connu une crise dans le développement de logiciels. Les programmeurs ont écrit du code, puis découvert de nouveaux besoins, puis ont dû détruire leur code et recommencer à zéro. Cela est arrivé encore et encore parce que le code que les programmeurs écrivaient ne pouvait pas être réutilisé. La programmation orientée objet a tout changé pour le mieux.