Problème de compréhension.
Bonjour,
J'ai beaucoup de mal avec la POO :aie:, 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:
1 2 3
|
Humain Toto = new Humain();
Voiture Ferrari = new Voiture("Ferrari"); |
Maintenant Toto doit voir la Ferrari devant ses yeux :
Code:
1 2
|
Toto.Observer(Ferrari); |
Puis il s'exclame :
Maintenant le scénario est les objets mis en place, voyons les classes :
Code:
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. :lol:
Code:
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:
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:
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 :roll: :lol:
Merci d'avoir tout lu, j' attend vos réponses :D