Modification par référence - Java - Programmation
Marsh Posté le 04-01-2015 à 10:39:07
Bonjour,
Humm je dirais simplement que comme tout est une classe en java, tu peux déclarer en private static tes deux variables Objet1 & Objet2.
Tu aura ainsi accès à tes variables dans ta méthode ligne 13.
Je suis pas sur que c'est ce que tu gère mais java étant un langage fortement objet c'est ce qui parait le plus logique.
Marsh Posté le 04-01-2015 à 19:04:14
Oui je suis d'accord dans ce cas là puisque les deux objets au même niveau.
Je recherche simplement un moyen de retourné deux valeurs de type différent dans une même fonction.
Je vais expliquer mon réel problème :
Je possède une 3 classes : Bibliotheque, Etagere et Livre
Les Bibliotheques contiennent des Etageres qui contiennent des Livres.
Dans Bibliotheque je veux une méthode getLivre qui me renvoi le livre, ainsi que l'étagère dans laquelle il se trouve
Cela donne :
Code :
|
Voila, comment récupérer le Livre et l'Etagere à la fois dans getLivre ?
Je veux éviter le surplus de code inutile tel que de reparcourir les listes pour un résultat qu'on a déjà.
C'est pour cela que j'ai penser à la modification par référence en C, qui me parait très simple et peu coûteux.
Voir même au tuple en Python, mais cela reviendrait à créer une nouvelle classe Couple<Livre, Etagere> que je n'apprécie guerre.
Code :
|
Marsh Posté le 05-01-2015 à 08:26:00
Re,
La on est plus dans un problème de conception que de code ^^
Alors personnellement je ferais comme ça :
Dans ta classe bibliothèque tu as juste une liste d'étagère car une étagère est forcement dans une bibliothèque
Ta classe Etagère doit avoir un nombre, ( 1,2,3,4 étagère )
Et une liste de livre car tu range ton livre dans une étagère.
(Regarde tu coté des hasmap, c'est une arrayList a deux dimension pour parler simplement )
C'est donc dans cette classe que tu aura getLivre();
Ensuite ta classe livre auras juste les propriété d'un livre ( titre, auteur toussa )
Ainsi si tu stocke un objet étagère dans une la liste d'étagère d'une bibliothèque,
tu sera en mesure de retrouver ce que tu cherche.
PS : cette méthodes fonctionnera mais n'es pas la plus propre, il faut chercher au niveau de l'héritage qui te permettra de faire une code plus propre et plus facilement réutilisable
Marsh Posté le 07-01-2015 à 23:25:07
Et bien la seul différence a ce code serait la méthode getLivre() qui serai dans Etagere et une Map dans l'étagere, j'ai de bonne notion en java, je connais HashMap tout ca.
je voudrais juste pouvoir faire dans le main du code suivant :
Code :
|
Sauf que là on refait un parcourt inutile de toute la bibliothèque (ou de étagère seulement).
Ça me parait pourtant tellement simple à résoudre avec une solution adéquat.
Juste fusionner getLivre et getEtagere de Bibliotheque x)
Marsh Posté le 12-03-2015 à 14:53:15
Dans Etagere, stocke une HashMap<Integer,Livre> (ou une LinkedHashMap si l'ordre des livres est important)
Et quand tu veux savoir si un livre est dans une étagère donnée, tu fais
Code :
|
Marsh Posté le 03-01-2015 à 23:37:07
Bonjour, j'aimerai modifier la valeur même d'une variable simplement par sa référence :
On ne connait la valeur des deux objets que dans la fonction. Le problème vient du fait que les deux objets doivent être retournés alors qu'ils sont de type différents
en C on ferait simplement avec un pointeur :
Ma question est : Comment faire ce genre de manipulation en Java ? sans passer par une autre classe "Couple<Objet1, Objet2>" ou un truc du genre si vous préférez.
Merci d'avance
Message édité par didibear le 04-01-2015 à 00:04:27