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