Par exemple, j'ai 3 livres:
Maintenant, je veux avoir un tableau appelé Comment puis-je réaliser ce: Je ne peux pas l'appeler pour le développer davantage. J'ai 2 classes: livre et bookui. P> book strong> p> Booknumber (int) Code>, Booktitle (String) Code>, Booklanguage (String) Code>, Bookprice (int) Code>. livres [3] [4] code>. Je reçois les données que j'ai définies via SetBookNumber code> comme ceci:
book1.gebooknumber (), book1.gebooktitle (), ..., book3.gebookprice (). code> p> Livres [3] [ 4] Array code>. P> String Livres [] [] = nouvelle chaîne [3] [4] code>. Parce que je ne peux pas obtenir booknumber (int) code> dans elle. Je ne veux pas que Booknumber soit une chaîne ni bookprice. Comment puis-je le réaliser, s'il vous plaît? P> public class bookUI
{
public static void main(String arg[])
{
book book1 = new book();
book book2 = new book();
book book3 = new book();
book1.setBooktitle();
...
book3.setBookprice();
//Here I want to have books[3][4] Array. And gettin the data via book1.get...book3.get into the array
}
}
5 Réponses :
Notez la répétition de Book Code> dans Booknumber (int), BookTitle (String), Booklanguage (String), BookPrice (int) Code> - Il crie un type de classe. Object books[3][4]
Maintenant que cela a été édité, mon commentaire a l'air un peu épais. +1 pour la modification concernant la répétition de "livre" dans les noms de champs. C'est une odeur qui crie effectivement pour refactoring.
int total = 0;
for (Book b : myLibrary)
{
total += b.price;
System.out.println(b); // Assuming a valid toString in the Book class
}
System.out.println("The total value of your library is " + total);
Je seconde ce commentaire. Vous devez fermement envisager de créer un type personnalisé pour cela, plutôt que de le coller dans un tableau multidimensionnel avec un type d'objet générique. Le casting constant est un signe de mauvais design.
Je ne comprends pas ça. Pouvez-vous s'il vous plaît expliquer plus loin?
Il dit qu'un livre ne devrait pas être un tableau. C'est un type d'agrégat et doit être représenté par une classe.
"Chaque livre doit être créé sur ses propres (via un constructeur bien conçu), puis ajouté à la matrice." C'EST CE QUE JE VEUX ;). Excatement ce que je veux. Je souhaite Créer 3 objets (3 livres), définissez toutes les données et donnez-la à un tableau. Ensuite, je veux appeler par livre [0] [0] le Booknumber par exemple.
Je ne peux pas comprendre pourquoi vous insistez sur book [0] [0] code> autant. Ce n'est pas comme ça que ça marche dans Java. Si vous voulez le faire comme ça, vous devez choisir par exemple. Php.
Pourquoi ne pas créer une classe .. Pour obtenir le titre de vos livres, appelez p> me semble un peu plus gérable et convivial. p> p>
Parce que ce n'est pas ce que je veux.
Pourquoi est-ce un problème de le faire de cette façon? En plus d'être probablement la seule façon dont le code est bien plus facile à comprendre.
Becaus je ne le veux toujours pas et ce n'est pas ce que j'essaie de comprendre. Je suis selflearning Java. Cela ne m'aide pas lorsque les gens pesaient des chandeux de différentes codesolutions. Je veux rester dans mon "CodeFrame" donné, je peux donc le comprendre, puis passer à quelque chose de différent.
@Nocando: Si vous êtes auto-apprentissage, alors vous devriez écouter les personnes qui savent ce qu'ils font lorsqu'ils vous disent que vous allez à propos de quelque chose de mauvais sens. Et les gens ne font pas de centaines de solutions différentes à vous - ils suggèrent la même chose, qui est de faire une classe de livres.
Oui, bien cela pourrait être. Mais souvent, c'est comme cette analogie: l'apprentissage de la géométrie de base et des gens commencent à le bombarder à des calculs différentiels avancés. Alors qu'il / elle n'a aucune idée du calcul différentiel. Pas dans ce cas ici, mais assez souvent le cas sur Stackoverflow. Je veux dire que toutes les solutions fonctionnent si je les imples, mais ce n'étaient pas ce que je cherchais. Si cela ne fonctionne pas, alors cela ne fonctionne pas. J'apprécierais que les gens puissent expliquer un débutant pourquoi et comment cela ne fonctionne pas et ne commence pas immédiatement à lancer d'autres solutions. Cela n'aide pas du tout.
Chris l'a expliqué, alors cette question est discutable;).
Utiliser le type d'objet Ie des livres d'objets [3] [4]; p>
@nocando: Vous ne pouvez pas créer de matrice avec différents types de données car Java prend en charge uniquement les variables avec un type de données ou un objet spécifique. Lorsque vous créez un tableau, vous tirez ensemble un assortiment de variables similaires - presque comme une variable étendue. Toutes les variables doivent donc être du même type. Java ne peut pas différencier le type de données de votre variable à moins que vous ne le disiez ce que c'est. Ex: p> Maintenant, un seul numéro d'index vous offre toutes les informations de ce livre. Ex: Tous vos tableaux avec index numéro 0 ([0]) ont des informations pour le livre 1. P> int code> indique que toutes vos variables déclarées sont de type de données int code>. Ce que vous pouvez faire est de créer 3 tableaux avec des informations correspondantes.
int booknumber [] = {1, 2, 3, 4, 5};
Int Bookname [] = {nameofbook1, nameofbook2, nameofbook3, nameofbook4, nameofbook5}
//c .. etc .. code> p>
Pourquoi est-ce qu'un tableau de matrices?
Parce que c'est ce que j'essaie de travailler. Peu importe comme c'est moche ou à quel point c'est stupide. C'est mon but et je veux le faire pour que je puisse comprendre pourquoi cela n'a pas fonctionné, comment cela fonctionne, puis sur la façon de le faire différent.
OK, la solution simple est la suivante: il n'y a aucun moyen d'accéder aux propriétés de la classe dans ce tableau
(0] code> style. (Corrige moi si je me trompe). Les tableaux sont également dactylographiés afin que la seule solution consiste à créer une gamme de tableaux d'objets code>, ce qui est mauvais, car vous devez savoir quel type d'objet vous traitez réellement (chaîne ou entier). OOP est là pour rendre la vie plus facile pour vous l'accepter.-1: Si vous n'êtes pas disposé à accepter que certaines choses ne sont pas possibles que personne ne peut vous aider. C'est comme si vous nous avez donné de l'eau et nous a demandé de cuisiner des pâtes sans pâtes et un pot (et à temps pour le dîner).
Félix est correct. Les objets arbitraires ne sont pas des tableaux et vous ne pouvez pas utiliser la syntaxe de tableau sur eux. Ce n'est tout simplement pas Java.
Swell, cela a répondu à ma question alors.