Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ausgeben eines 2D Arrays mit int UND String werten - BLUEJ!
Hallo ich habe zwar mit der Sufu einige Themen gefunden, die meinem ähneln, allerding habe ich ganz spezifische Fragen und möchte meine Aufgabe erst einmal ohne Schleifen lösen.
Ich arbeite mit BlueJ
Ich habe mir ein 2D - Array gebaut , das zwei Wurstregale repräsentieren soll. Ich kann nun die Regale mit Waren befüllen und als Attribute die Größe, das Gewicht, den gewünschten Lagerplatz und auch die Bezeichnung (String! Zum Beispiel "Stadtwurst") eingeben.
Nun möchte ich dass mit Hilfe von System.out.println all diese Werte in der Konsole ausgegeben werden. Wenn ich das tue gibt mir die Konsole allerdings nur die Größe des Produkts an. Das ist auch irgendwie verständlich , da
Java:
public void WurstRegal1(int fach, int groesse, int gewicht, String bezeichnung)
{
faecher[0][fach] = groesse;
}
Ich habe hier versucht einen Code, den ich im Internet gefunden habe auf meine Bedürfnisse zuzuschneidern. Das funktioniert auch solange gut, bis ich eben ALLE Werte ausgeben will und nicht nur die groesse. Warum kann ich nicht schreiben
Bzw. wie muss ich umdenken, damit das funktioniert.
Hier mal der ganze Code
Java:
/**
* Klasse für Lagerregale (Alle die es im Lager geben soll)
*
*
*
*/
public class Lagerregale
{
private int[][] faecher;
/**
*
*
*
*/
public Lagerregale()
{
faecher = new int [2][10];
}
/**
* Wurstregal 1 mit Wurst befüllen
*
*/
public void WurstRegal1(int fach, int groesse, int gewicht, String bezeichnung)
{
faecher[0][fach] = groesse;
}
/**
* Wurstregal2 mit Wurst befüllen
*
*/
public void WurstRegal2(int fach, int groesse, int gewicht, String bezeichnung)
{
faecher[1][fach] = groesse;
}
/**
* Zeige an, welche Wurst in welchem Regal liegt, was sie wiegt und wie groß sie ist
*
*/
public void anzeigen()
{
System.out.println("Fach 0 = " + faecher[0][0]);
System.out.println("Fach 1 = " + faecher[0][1]);
}
}
Sowie ich es verstanden hatte soll es zwei Regale geben, die mit verschiedenen Artikel befüllt werden.
Aber es stimmt der Klassenname ist falsch er sollte lieber Artikel heißen.
public class Lagerregal {
public Artikel[] gelagerteWaren;
public Lagerregal(int lagerGroesse) {
this.gelagerteWaren = new Artikel[lagerGroesse];
}
/**
* @param a
* @return true, wenn der Artikel gespeichert werden konnte, false, wenn das
* Regal voll ist
*/
public boolean artikelAblegen(Artikel a) {
for (int i = 0; i < gelagerteWaren.length; i++) {
if (gelagerteWaren[i] == null) {
gelagerteWaren[i] = a;
return true;
}
}
return false;
}
/**
* @param name
* @return gesuchten Artikel oder null, wenn Artikel nicht gefunden wurde
*/
public Artikel artikelEntnehmen(String name) {
for (Artikel a : gelagerteWaren) {
if (a.Bezeichung.equals(name)) {
return a;
}
}
return null;
}
public String zeigeAlleWaren() {
String output = "";
for (Artikel a : this.gelagerteWaren) {
if (a != null) {
output += a.Bezeichung + "(" + a.Groesse + "| " + a.Gewicht
+ ")\r\n";
} else {
return output;
}
}
return output;
}
}
Java:
public class Artikel {
public String Bezeichung;
public double Gewicht;
public double Groesse;
public Artikel(String bezeichnung, double gewicht, double groesse){
this.Bezeichung = bezeichnung;
this.Gewicht = gewicht;
this.Groesse = groesse;
}
}
Java:
public class Main {
public static void main(String[] args) {
Lagerregal a = new Lagerregal(5);
a.artikelAblegen(new Artikel("wurst1", 1, 1));
a.artikelAblegen(new Artikel("wurst2", 2, 2));
System.out.println(a.zeigeAlleWaren());
}
}
Man könnte das jetzt natürlich auch so bauen, dass die genaue Position festgelegt wird und nicht einfach der nächste freie Platz genommen wird.