IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème de compréhension.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Par défaut Problème de compréhension.
    Bonjour,

    J'ai beaucoup de mal avec la POO , en faite pour être plus précis je n'arrive pas a m'imaginer certaines chose très simple.
    Voila un exemple pour être clair :

    Une Ferrari est quelque part et Toto là voit, à ce moment il s'exclame : "Mais c'est une Ferrari!"
    (Les deux objet se trouvent dans la Main() pour faire simple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Humain Toto = new Humain();
    Voiture Ferrari = new Voiture("Ferrari");
    Maintenant Toto doit voir la Ferrari devant ses yeux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Toto.Observer(Ferrari);
    Puis il s'exclame :
    Maintenant le scénario est les objets mis en place, voyons les classes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class Voiture
    {
      public string Nom;  //le nom de la futur Ferrari :)
     
      private void setNom(string texte)  //pour lui donner son nom...:P
      {
        Nom = texte;
      }
     
      public Voiture(string texte)
      {
        setNom(texte);
      }
    }
    Le nom est publique car une voiture ne parle pas et Toto a quand même apprit a lire à l'école.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    class Humain
    {
      private string memoire; //Toto le plus intelligent des Lemmings :)
     
      private void setMemoire(string texte)
      {
        memoire = texte;
      }
     
      private string getMemoire()
      {
        return memoire;
      }
     
      public void Observer(Voiture objet)
      {
        setMemoire(objet.Nom);
      }
     
      public void Exclamer()
      {
        Console.WriteLine("Mais c'est une "+getMemoire()+"!");
      }
    }
    Voila on a tout ce qu'il faut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    using System;
     
    namespace Application
    {
        class Programme
        {
            static void Main()
            {
                Humain Toto = new Humain();
                Voiture Ferrari = new Voiture("Ferrari");
     
                Toto.Observer(Ferrari);
                Toto.Exclamer();
     
                Console.ReadKey();
            }
        }
     
        class Voiture
        {
            public string Nom;
     
            private void setNom(string texte)
            {
                Nom = texte;
            }
     
            public Voiture(string texte)
            {
                setNom(texte);
            }
        }
     
     
        class Humain
        {
            private string memoire;
     
            private void setMemoire(string texte)
            {
                memoire = texte;
            }
     
            private string getMemoire()
            {
                return memoire;
            }
     
            public void Observer(Voiture objet)
            {
                setMemoire(objet.Nom);
            }
     
            public void Exclamer()
            {
                Console.WriteLine("Mais c'est une " + getMemoire() + "!");
            }
        }
     
    }
    Vous allez me dire : "Mais il marche très bien ce code!"
    Oui il marche mais je ne le trouve pas logique et c'est là que j'ai besoin de votre aide :

    - Toto ne peut pas observer la voiture tout seul, c'est moi qui ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Toto.Observer(Ferrari);
    Un objet est sensé être indépendant, comment faire?

    - La console, ici, joue le rôle d'un pot pourris.... est ce correct de l'employer de cette manière? C'est à dire

    Voila j'espère que mon problème est plus clair que le début du post
    Merci d'avoir tout lu, j' attend vos réponses

  2. #2
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Normal l'objet ne fait rien par défaut. Ton objet ne peut être indépendant vu qu'il est aveugle lol

    Pour que les objets puissent communiquer, il y a un mécanisme d'envoi de message opéré par l'intermédiaire des méthodes.

    Quand tu lance une appli, elle charge et après elle fait quoi ? Rien puisqu'elle attends que l'utilisateur fasse quelquechose (clique sur un bouton, fais bouger sa souris).

    Sur ton appli console, il ne se passe rien, tu n'utilise pas le clavier ni la souris comment ton objet est sensé savoir qu'il voit une voiture si on lui dit rien ?

    Ou alors tu veux faire une IA ?

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Version revue de l'oeuf et la poule !

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Par défaut
    Je pensais que ma conception de la POO était mauvaise...
    En tout cas merci, je vois beaucoup mieux comment ça se passe maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] problème de compréhension
    Par Sylvester dans le forum Général Java
    Réponses: 18
    Dernier message: 21/07/2005, 09h16
  2. Réponses: 5
    Dernier message: 11/04/2005, 10h21
  3. [C#] Problème de compréhension de System.Convert ET Provider
    Par papouAlain dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/11/2004, 21h52
  4. onclipevent (problème de compréhension)
    Par stephane eyskens dans le forum Flash
    Réponses: 8
    Dernier message: 24/09/2003, 15h09
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo