Je suis relativement nouveau à Java. Je pratiquais un exercice où nous explorons le comportement polymorphe des instances de sous-classe et de superclasse. Cet exercice s'appuie sur les concepts de classes et d'interfaces abstraites. Les arraylistes sont introduits dans cet exercice. L'une des questions nous oblige à créer une arrayliste d'objets de travail écrites appelés produits et ajoutez les objets appropriés à la flambée de l'arrêté.
Mon problème est que le tableau conserve l'impression du premier élément 3 fois puis imprime le reste des éléments. P>
Quelqu'un pourrait-il expliquer pourquoi cela continue à se produire? P>
Edit: J'ai réalisé l'erreur que je faisais grâce à vos gars!
J'ai changé la boucle pour p> à p> Cette image montre comment toutes les classes sont connectées p> voici le code: p> Ceci est la sortie P> p>
6 Réponses :
for (WrittenWork w: products){ System.out.println(w.toString()); }
Il devrait être:
for(WrittenWork w: products) System.out.println(w.toString()); }
Essayez ceci:
for (WrittenWork w: products){ System.out.println(w.toString()); }
Vous êtes itération sur la flambée, mais imprimez w1 code>,
w2 code> et
w3 code> sur chaque itération. Comme les autres ont souligné l'impression
w code> dans chaque itération qui pointe vers l'élément correspondant à l'itération.
for (WrittenWork w: products){
System.out.println(w.toString());
}
autre que d'avoir utilisé des supports utilisés pour identifier correctement le bloc Vous avez écrit P> Le tableau conserve l'impression du premier élément 3 fois puis imprime.
le reste des articles p>
BlockQuote> Cela me conduit à penser que votre code ne représente pas vraiment ce que vous voulez réellement accomplir. car vous avez utilisé un ( amélioré em>) mais vous n'avez jamais pris en compte la variable locale Que se passe-t-il en arrière-plan, c'est qu'un Il vous suffit d'utiliser cette variable pour vos connaissances, ce style de boucle p> est équivalent à p> Vous pouvez voir la condition vérifiée est pour code>, vous avez une faille logique dans votre petit morceau de code.
C'est totalement normal au début, ne vous inquiétez pas.
Il semble que vous souhaitiez imprimer tous les écrites code>. P>
pour code> boucle p>
w code> p>
Itérateur
w code>. p >
w code> pour imprimer tous les éléments de
produits code>.
Le itérateur code> s'éputilisera et La boucle s'arrêtera. p>
itérator.hasnext (); code>. p> p>
for(WrittenWork w: products) System.out.println(w1.toString()); System.out.println(w2.toString()); System.out.println(w3.toString()); } In a program exection fashion it may make you feel right and it runs but the logical issue incurs that if you opt for printing all objects with segregate System.out.println methods, then why did you use for(each)-loop?Besides, you don't need to call toString() method called implicitly and automatically if an object reference is passed to System.out.println method
Votre boucle n'a pas de crochets, alors seule la première déclaration est exécutée. Pourquoi utilisez-vous une boucle du tout si vous êtes en train de coduler les déclarations d'impression?
Pourquoi ne pas imprimer w?