Partage
  • Partager sur Facebook
  • Partager sur Twitter

instancieer une classe

Sujet résolu
    30 octobre 2014 à 14:06:36

    bonjour ,

    quand je créé une instance new Voiture("marque", d , p) le compilateur ne reconnais pas les paramètres d et p qui sont des instances d'autre classes:

    public static void main(String[] args)

      { 

      Personne P1=new Personne("Dupon","Jean");

      DATE d1= new DATE (2,12,2002);

      Voiture v1 = new Voiture ("Renault", d, p) ;

      System.out.println(v1.toString());

      }

    je veux que d reconnaisse d1 et que p reconnaisse P1

    • Partager sur Facebook
    • Partager sur Twitter
      30 octobre 2014 à 14:12:34

      Bonjour,

      Mets d1 à la place de d, et P1 à la place de p, non ? Ou le nommage inverse

      • Partager sur Facebook
      • Partager sur Twitter

      cd514331234507.564a1d2324e4e.gifCTO Co-fondateur @ My Talent Manager : boostez votre carrière d'artiste | https://mytalentmanager.fr

        30 octobre 2014 à 14:15:30

        non justement je ne veux pas faire cela je veux que pour chaque DATE..... OU Personne ..... que cela se fasse automatiquement c'est possible ?
        • Partager sur Facebook
        • Partager sur Twitter
          30 octobre 2014 à 16:31:47

          il n'y a pas de miracles : tes instances réagissent de la manière dont tu programmes les classes dont elles sont issues.

          Qu'as-tu mis dans la classe voiture?

          Et que veux tu faire exactement?

          • Partager sur Facebook
          • Partager sur Twitter
            30 octobre 2014 à 16:46:41

            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

            • Partager sur Facebook
            • Partager sur Twitter
            Un de ces quatre, viens faire un tour sur Zeste de Savoir !

            instancieer une classe

            × 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.
            • Editeur
            • Markdown