CodeGym /Cours Java /Syntaxe Java /Interactions entre objets

Interactions entre objets

Syntaxe Java
Niveau 2 , Leçon 1
Disponible

« Salut, Amigo. Aujourd'hui, je vais te dire à quoi ressemble un programme Java typique. L'idée générale est que tout programme écrit en Java se compose de classes et d'objets. »

« Je sais déjà ce que les classes sont. Mais les objets ? »

« Commençons par une analogie. Supposons que tu veux construire un petit navire. Tu travailles à sa conception et tu envoies le plan à l'usine, où un navire est assemblé en suivant tes dessins. Ou dix navires ; autant que tu veux en fait. L'important, c'est que tu peux faire des dizaines de navires identiques avec ton plan d'origine. »

« C'est exactement pareil en Java. »

« Les programmeurs Java sont comme des ingénieurs, sauf qu'au lieu de concevoir des plans, ils écrivent des classes. Les pièces de navire sont fabriquées en suivant les plans, et les objets sont créés en suivant les classes. »

« D'abord, on écrit des classes (ou dessine des plans). Ensuite, quand le programme est exécuté, la machine Java crée des objets à partir de ces classes. C'est exactement comme la façon dont les navires sont fabriqués sur la base d'un plan. Un seul plan pour beaucoup de navires. Les navires sont différents. Ils ont des noms différents et transportent des cargaisons différentes. Mais ils n'en sont pas moins similaires. Ils ont tous une conception identique, et sont capables d'effectuer les mêmes tâches. »

« D'accord, j'ai compris l'analogie avec les navires. Tu pourrais me donner d'autres exemples pour que je sois sûr de bien avoir compris ce que tu dis ? »

« Prenons les abeilles, par exemple... »

« Non, oublie ça. J'ai eu une mauvaise expérience avec les abeilles. On va plutôt prendre des fourmis. »

« Une colonie de fourmis est un bon exemple pour illustrer la façon dont les objets interagissent. Toute colonie de fourmis se compose de trois classes : la reine, les soldats et les fourmis ouvrières. Le nombre de fourmis dans chaque classe varie. En général, une colonie a une seule reine, des dizaines de soldats et des centaines d'ouvrières. Trois classes pour des centaines d'objets. Les fourmis suivent des règles strictes quand elles interagissent avec les fourmis de leur propre classe et celles des autres classes. »

« C'est l'exemple parfait. Un programme typique fonctionne exactement comme cela. Il y a un objet principal qui crée des objets dans toutes les classes. Les objets interagissent les uns avec les autres et avec le monde extérieur. Et le comportement des objets est câblé (programmé) à l'intérieur. »

« J'ai du mal à comprendre. Ou plutôt, je n'ai rien compris du tout. »

« Ces deux explications sont les deux faces d’une même médaille. La vérité se trouve quelque part entre les deux. Le premier exemple (sur les plans et les navires) nous montre la connexion entre une classe et ses objets. C'est une analogie puissante. L'analogie de la colonie de fourmis montre la relation entre les objets, qui sont décrits par des classes et existent uniquement quand un programme est exécuté. »

« Tu veux dire qu'on doit écrire des classes pour tous les objets utilisés dans un programme, puis décrire leurs interactions ? »

« Oui, mais c'est plus facile que ça en a l'air. En Java, quand un programme est exécuté, toutes les entités sont des objets. Écrire un programme revient à décrire les différentes façons dont les objets peuvent interagir. Les objets appellent simplement les méthodes des autres et leur passent les données nécessaires. »

« C'est encore un peu flou, mais je commence à saisir. »

« Comment sait-on quelles méthodes appeler et quelles données passer ? »

« Chaque classe a une déclaration, qui indique son utilisation prévue. De la même façon, chaque méthode a une déclaration qui indique ce qu'elle peut faire et les données que nous devons lui passer. Pour utiliser une classe, tu dois avoir une compréhension générale de ce qu'elle fait. Nous devons savoir exactement ce que chaque méthode fait, mais pas exactement comment elle le fait. C'est comme une baguette magique. »

« Hm ! Intéressant, dit comme ça. »

« Là. Observe le code d'une classe qui copie des fichiers : »

Copie c:\donnees.txt vers c:\resultat.txt
package com.codegym.lesson2;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopy
{
    public static void main(String[] args) throws IOException
    {
        FileInputStream fileInputStream = new FileInputStream("c:\data.txt");
        FileOutputStream fileOutputStream = new FileOutputStream("c:\result.txt");

        while (fileInputStream.available() > 0)
        {
            int data = fileInputStream.read();
            fileOutputStream.write(data);
        }

        fileInputStream.close();
        fileOutputStream.close();
    }
}

« Je mentirais en disant que j'ai tout compris, mais je pense avoir saisi l'essentiel. »

« Parfait. On se revoit la prochaine fois, alors. »

« Ah, j'avais presque oublié. Voici ta mission de la part de Diego. »

Commentaires (27)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
Anonymous #11499398 niveau 2, Guyancourt, France
7 avril 2024
adieu codegym
Boby niveau 6, France, France
14 décembre 2023
2 minutes et c'etait bouclé
Vulkork niveau 2, France, France
31 mars 2023
Y a quand même un soucis. Y a une leçon de sautée ?
aragornduGondor72 niveau 8, Nouméa, New Caledonia
9 avril 2024
je me faisais la même reflexion. On dirait qu'entre la fin du niveau 1 et le début du niveau 2 , il y a un fossé. (j'ai pas enciore essayé de faire l'exo mais bon...)
Hola Java niveau 2, Orlando, France
21 mars 2023
Merci aux commentaires de m'avoir permis de réaliser cet exercice sans tricher ! (re) Lisez bien les impératifs ! Ce qui m'a induit en erreur c'était surtout : "implémente la [methode] imprimer" déjà ensuite, fin.. l'énoncé du haut n'est pas clair mais viens ensuite les impératifs, lisez le calmement, ça viendra ! Bon courage, Je débute tout juste les cours Java, si jamais un français voudrais partagez avec moi ces moments de codes !
Epicswords niveau 4, France
12 mars 2023
je sais pas comment j'ai fais mais je suis trop content!!!😅
Bro... niveau 2, Coucouron, France
6 juillet 2022
J'ai hurlé quand j'ai trouvé la solution (premières joies d'un débutant hahaha)
Fallou Dieng niveau 3
3 avril 2022
QUELQ'UN peut il me aider je suis bloquer sur cet exercice svp
15 novembre 2020
dommage en version free on peut pas continuer plus :/
moussa76b niveau 7
25 octobre 2020
bonjour,puis je avoir une aide pour cette exercice,pas assez expliquer a mon gout. MERCI
CrafterD niveau 2
20 octobre 2020
🚩Ici s'achève la formation pour ceux qui n'ont pas premium 😿 (par manque de matière noire ⚫ :( ) En tout cas, ce début était excellent !!! :D 👍