Stocker un objet java en une structure java

Fermé
m3allem58 Messages postés 58 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 7 janvier 2014 - 18 mars 2009 à 16:49
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 - 20 mars 2009 à 13:07
Bonjour,

J'ai une classe java qui contient plusieurs champs ( uniquement des attributs, pas de methodes) .Quand j'aurai des instances de cette classe(les objets), c pas obligatoire qu'ils contiennent tous les meme champs.
je veux stocker ces objtes là dans des structures java qui ont les meme noms des champs que l'objet.Mais cette structure ne sera pas unique pour tous les objets qui n'ont pas tous les meme attributs.
Donc je veux avoir une structure qui s'adapte avec l'objet.

Exemple qui pose le meme probleme que le mien:

Classe Personne {

nom: string;
prenom: string;
age: integer;
adresse: string;
profession: string;

}

je suis capable d' instancier un objet contenant par exemple 2 attributs nom et prenom:je veux le stocker dans la structure correspondante qui contient 2 champs nommés exactement nom et prenom.

structure st {
nom= personne.nom
prenom= personne.prenom
}

et par exemple un autre objet ayant 3 attributs nom et prenom et adresse: la structure est:

structure st1 {

nom= personne.nom
prenom= personne.prenom}
adresse=personne.adresse
}

et la combinaison des attributs se poursuit...

Ainsi la strucrure est générée selon l'objet que je crée.

Donc quelle est la strucrure qui convient?

Est ce que la structure de données en C et C++ type def struct existe en java? Est ce qu'elle répond au besoin?

A+.
A voir également:

1 réponse

neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 515
18 mars 2009 à 16:52
Hello,

Il serait plus judicieux de travailler avec des super-classes.

Tu créé une classe principale qui s'appelle par exemple "Personne"

Tu lui donnes la attributs que toutes tes structures ont en commun. Par exemple si chaque objet que tu va créer contient l'attribut nom et prenom, tu le met dans la super classe.

Ensuite tu fais des sous-classe, enfait c'est une classe typique, sauf que tu rajoute "extends" nomDeLaSuperClasse après le nom de la classe.

Tu utilise la méthode super() dans ton constructeur et tu y ajoutes les nouveaux attributs pour cet objet précis. Le super(); permet d'hériter des attributs de ta super-classe.

Tu vois ce que je veux dire ?
1
m3allem58 Messages postés 58 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 7 janvier 2014
18 mars 2009 à 17:17
salut,
merci pour ta réponse, je comprend bien ton idéé. J'ai fait la classe super.mais pour les attributs spécifiques, je peux ne pas les remplir tous càd pour la meme classe je peux avoir plusieurs objets differents où je peux choisir à ne pas avoir tel ou tel attribut en sortie. et puisque j'ai bq d'attributs donc il faut que la structure soit spécifique à l'objet lui meme.

t'as compris ce que je voulais dire?
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 515 > m3allem58 Messages postés 58 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 7 janvier 2014
18 mars 2009 à 18:15
Salut, j'ai de la peine à comprendre ce que tu dis... Bon on va faire une exemple.

ça concerne l'effectif des employés d'une entreprise (par exemple)

Tous les membres de l'entreprises sont des Humains (on est d'accord ? :-)
Ills possèdent tous un nom et un prénom.

On créer donc la classe Humain qui contient (String nom, String prenom)

Maintenant, certains de ces humains, sont cadres ou juste employés, du coup on créer deux sous-classe, nommées Cadre et Employer qui étendre la super-classe Humain.

Un cadre aura un nom et un prénom évidemment car c'est un humain avant tout, mais il a également (par exemple) une voiture de fonction. Donc tu créer une sous-classe Cadre(String nom, String prenom, String marqueVoitureFonction)

Ensuite dans le constructeur de cet objet "Cadre" tu provoque l'héritages des attributs "nom, prenom" avec un super(nom,prenom)
et tu lui ajoute l'attribut voitureDeFonction :

this.voiture = marqueVoitureFonction;

Donc si tu veux créer seulement un humain tu instancie uniquement un Humain(nom,prenom)

si tu veux utiliser les trois attributs (nom,prenom,voiture) c'est l'Objet Cadre qu'il faut instancier.

Tu comprend le concept ?

Les sous-classes héritent des attributs de sa super-classe et peut elle même contenir des attributs supplémentaires.

Si tu pouvais m'expliquer le concept de ton programme je pourrais mieux t'aider, car c'est un peu flou ton histoire de ne mettre que quelques attributs et d'autres pas.. Enfin si bien sûr ma réponse ne te convenait pas.
0
amir85 > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
19 mars 2009 à 09:28
Bonjour,

Je comprends bien ce que tu dis.
Mais en ce qui concerne mon programme c'est un peu différent.

En fait, j'ai une classe Personne comme je l'ai présentée auparavant.J'ai généré un formulaire(interface graphique) relatif à cette classe où je peux remplir les attributs de la classe.Il ya des attributs qui sont obligatoires et d'autres optionnels, donc je peux ne pas remplir les attributs optionnels. Ces données seront stockées dans la table Personne dans une base de données Mysql. Ainsi, les tuples de la table diffèrent en nombre des attributs qu'ils possèdent. Maintenant, je peux faire l'appel des tuples en Eclipse sous forme d'objets java(chaque tuple est un objet).

Il me faut stocker les attributs des objets dans la structure que j'en ai parlée, comment pourrais être cette structure?
Vu que les objets ne contiennent pas tous les même attributs, donc cette structure doit avoir automatiquement ses champs en même nombre et nom que les attributs l'objet.


A+.
0
neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010 515 > amir85
19 mars 2009 à 15:45
Ah ben pas besoin de sous-classes alors si c'est juste pour remplir une table MySQL tu n'as qu'a laisser les attributs en "null" et gérer que quand tu upload dans ta base de données, les valeurs "null" soit remplacée par rien :-)

Je connais pas le MySQL, désolé
0
m3allem58 Messages postés 58 Date d'inscription mardi 10 mars 2009 Statut Membre Dernière intervention 7 janvier 2014 > neogenesis Messages postés 4748 Date d'inscription dimanche 19 octobre 2008 Statut Contributeur Dernière intervention 24 janvier 2010
19 mars 2009 à 17:41
Maintenant j'ai besoin d'une structure java convenable dans laquelle je peux stocker mes données à partir de l'objet.

La structure type def de C++ n'existe pas en java.

Y a t-il une structure qui convient?
0