Dur dur les tableaux d'objets imbriqués

haccounsoft Messages postés 18 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 30 décembre 2003 - 26 déc. 2003 à 15:01
haccounsoft Messages postés 18 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 30 décembre 2003 - 26 déc. 2003 à 16:01
Salut à tous et merci d'avance a ceux qui tenteront de m'aider.
Mon probleme n'est pas un probleme lié directement au C#, il concerne les tableaux d'objet imbriqués.

Alors voila j'explique brievement le probleme :
Dans le cadre de mes etudes je dois réaliser un programme de gestion d'une école
En aglo, en C++, en C# ou meme en VB.net j'ai le meme probleme.
Certains champs imbriqués ds des tableaux de tableaux sont inacessibles .

-> SCHEMA ABREGE DES CLASSES:

CLASSE C_ecole {
private C_Classe_L[] tab_classe = new C_classe[50];
}

CLASSE C_classe _L {
private C_lyceen[] tab_lyceen = new C_lyceen[32];
}

CLASSE C_lyceen :: C_personne {
private string BEA; // c un numéro lycéen
}

CLASSE C_personne {
private string nom;
private string prenom;
....
}

Pour résumer ce shéma, une ecole peut avoir jusqu'a 50 classes de lycéens .Et une classe de lycéen peut contenir jusqu'a 32 lycéens.Enfin un lycéen possède un No BEA ainsi qu' nom et un prenom qu'il hérite de la classe PERSONNE.

Mon probleme est le suivant .
Comment avoir acces au champs BEA d'un lycéen a partir d'un objet de type école ?
J'aimerai aussi acceder au nom et au prenom mé on en est pas encore la lol
Et je pense que si qqn m'aider à acceder au BEA, je pourrais me debrouiller seul pr le reste .

Ca fait 2 jours que je lutte alors si qqn pouvait m'aider, ca serait vraiment sympa !

developper :-p ou crever %-6

4 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
26 déc. 2003 à 15:15
Met tes champs en public ca marchera beaucoup mieux.

Les champs private ne sont accessible que la classe elle même.

Les champs public a tout le monde.

LE mieux si tu veux faire de l'objet est de faire des accesseurs.
ex en c# :

class C_lyceen C_personne
{

private string _bea; // c un numéro lycéen

public string BEA
{
get{return _bea;}
set{_bea = (string)value;}
}

}

::|The S@ib|::
MVP C#.NET
0
haccounsoft Messages postés 18 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 30 décembre 2003
26 déc. 2003 à 15:41
mettre les champs en public ca casserait le principe de l'encapsualtion. donc pas trop cool pr de la prog objet.

Et je crois que t'as pas compris ma question ou alors que je me suis pas super bien exprimé parce que le prob c pas un prob de getteur ou de setteur de la classe C_lycéen.
en fait le bug est bien plus bas , c au niveau de la classe C_ecole.

Si la tu t'emmerdes un peu et que lire 2 pages de code ca te derange pas trop , je copie-colle et je te dis ou est le prob. Sinon po grave, j'attends la rentrée pr demander a mon prof .

developper :-p ou crever %-6
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
26 déc. 2003 à 15:53
JE crois plutot que tu devrais revoir tes notions de POO, l'encapsulation est d'autant plus évidente dans le cas ou tu utilises des accesseurs. Avec des champs private et sans accesseurs il n'y a aucune chance que tu accedes aux donnée private de tes classes.

L'autre solution pourrait être d'imbriquer tes classes les unes dans les autres dans ce cas , il y aurait moyen d'y acceder...

::|The S@ib|::
MVP C#.NET
0
haccounsoft Messages postés 18 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 30 décembre 2003
26 déc. 2003 à 16:01
Je crois que tu devrais bien lire mes reponses lol

Ce qui casse la POO selon moi c de mettre les variables des classes en pubilc, pas les accesseurs bien sur !

Je debute peut etre mé qd meme pas au point de faire un Prog O O mettant en jeu plsrs classes en relation, et sans accesseur !!! qd meme lol

developper :-p ou crever %-6
0
Rejoignez-nous