Dans ta classe Personne tu peux mettre un atribut static qui est une ArrayList de Personne, dans le constructeur de Personne il faudrat que tu mettes ceci :
personnes.add(this);
// personnes est une l'atribut static cité précédement
ensuite dans ton main tu pourras faire :
Voiture v1 = new Voiture("Renault", Personne.personnes);
bien sûr il faut que le constructeur de Voiture prenne en paramètre une ArrayList ...
EDIT : Comme je suis gentil je vais te passer des classes fonctionnelles :
Test.java
public class Test
{
public static void main(String[] args)
{
new Personne("Dupond", "Toto");
new Personne("Mouloud", "Jean");
new Personne("Holland", "Flamby");
Voiture v1 = new Voiture("BMW", Personne.personnes);
System.out.println(v1);
}
}
Personne.java
import java.util.ArrayList;
public class Personne
{
public static final ArrayList<Personne> personnes = new ArrayList<>();
private String nom, prenom;
public Personne(String nom, String prenom)
{
this.nom = nom;
this.prenom = prenom;
personnes.add(this);
}
public String getNom()
{
return nom;
}
public String getPrenom()
{
return prenom;
}
public void remove()
{
personnes.remove(this);
}
}
Voiture.java
import java.util.ArrayList;
public class Voiture
{
private String marque;
private ArrayList<Personne> personnes;
public Voiture(String marque, ArrayList<Personne> personnes)
{
this.marque = marque;
this.personnes = personnes;
}
public String toString()
{
StringBuilder result = new StringBuilder();
result.append("Cette ");
result.append(marque);
result.append(" appartient à ");
for(Personne p : personnes)
{
result.append(p.getPrenom());
result.append(" ");
result.append(p.getNom());
result.append(", ");
}
result.replace(result.length() - 2, result.length(), ".");
return result.toString();
}
}
L'affichage sera alors : "Cette BMW appartient à Toto Dupond, Jean Mouloud, Flamby Holland.".
Voila, ça fera 5€
P.S : C'est sympa de ta part d'avoir utilisé le bouton </> dans ton premier post, ça nous facilite grandement la lecture
- Edité par LeSuricateFurtif 30 octobre 2014 à 17:14:36
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
CTO Co-fondateur @ My Talent Manager : boostez votre carrière d'artiste | https://mytalentmanager.fr