Hallo!
Ich habe eine Frage:
ich bin gerade dabei, ein kleines Rezeptbuch-Programm zu schreiben, aber ich bekomme beim ausführen jedesmal eine NullPointerException zur Laufzeit.
Das ist für mich unerklärt, weil bis zum dem Fehler in Zeile 19 (spritzgebaeck.zutaten.add(Butter)
sowohl das Objekt spritzgebaeck, als auch das Objekt Butter, sowie die ArrayList zutaten m.E. nach nicht "null" sein können. Könnt ihr mir sagen wo mein Fehler liegt?
Danke sehr!
Ich habe eine Frage:
ich bin gerade dabei, ein kleines Rezeptbuch-Programm zu schreiben, aber ich bekomme beim ausführen jedesmal eine NullPointerException zur Laufzeit.
Das ist für mich unerklärt, weil bis zum dem Fehler in Zeile 19 (spritzgebaeck.zutaten.add(Butter)
Danke sehr!
Java:
import java.util.ArrayList;
class PTest
{
public static void main (String[] args)
{
Zutat Butter= new Zutat("Butter", 500.0, "g");
Zutat Puderzucker= new Zutat("Puderzucker", 250.0, "g");
Zutat Mehl= new Zutat("Mehl", 1000.0, "g");
Zutat Eier= new Zutat("Eier", 3, "Stueck");
Zutat Vanillezucker= new Zutat("Vanillezucker", 4, "Paeckchen");
Zutat Backpulver= new Zutat("Backpulver", 4, "TL");
Zutat Milch= new Zutat("Milch", 2, "EL");
Zutat Zitrone= new Zutat("Zitrone", 1, "Spritzer");
Plaetzchenrezept spritzgebaeck=new Plaetzchenrezept("Spritzgebaeck", 200, "Alles vermischen, ca. 1 Stunde kuehl stellen. \nDen Teig ausrollen und Plaetzchen ausstechen. \nDie Plaetzchen ca. 10-12 Minuten bei 200 °C \nbacken und mit Schokolade dekorieren.");
spritzgebaeck.zutaten.add(Butter);
spritzgebaeck.zutaten.add(Puderzucker);
spritzgebaeck.zutaten.add(Mehl);
spritzgebaeck.zutaten.add(Eier);
spritzgebaeck.zutaten.add(Vanillezucker);
spritzgebaeck.zutaten.add(Backpulver);
spritzgebaeck.zutaten.add(Milch);
spritzgebaeck.zutaten.add(Zitrone);
System.out.println(spritzgebaeck.getTitel());
System.out.println(spritzgebaeck.getAnzahlPlaetzchen() + " Plaetzchen \n");
for(int i=0; i<spritzgebaeck.zutaten.size(); i++)
{
System.out.println(spritzgebaeck.zutaten.get(i).getMenge() + " " + spritzgebaeck.zutaten.get(i).getEinheit() + " " + spritzgebaeck.zutaten.get(i).getName());
}
System.out.println("\n" + spritzgebaeck.getAnweisungen());
Plaetzchenrezept neuesSpritzgebaeck=new Plaetzchenrezept();
neuesSpritzgebaeck=spritzgebaeck;
neuesSpritzgebaeck.passeAnFuer(300);
System.out.println(neuesSpritzgebaeck.getTitel());
System.out.println(neuesSpritzgebaeck.getAnzahlPlaetzchen() + " Plaetzchen \n");
for(int i=0; i<neuesSpritzgebaeck.zutaten.size(); i++)
{
System.out.println(neuesSpritzgebaeck.zutaten.get(i).getMenge() + " " + neuesSpritzgebaeck.zutaten.get(i).getEinheit() + " " + neuesSpritzgebaeck.zutaten.get(i).getName());
}
System.out.println("\n" + neuesSpritzgebaeck.getAnweisungen());
}
}
Java:
import java.util.ArrayList;
class Plaetzchenrezept
{
private String titel;
private int anzahlPlaetzchen;
ArrayList<Zutat> zutaten;
private String anweisungen;
//Konstruktor
public Plaetzchenrezept(String Titel, int AnzahlPlaetzchen, String Anweisungen)
{
ArrayList<Zutat> zutaten =new ArrayList<Zutat>();
titel=Titel;
anzahlPlaetzchen=AnzahlPlaetzchen;
anweisungen=Anweisungen;
}
public Plaetzchenrezept()
{
titel="Unbenannt";
anzahlPlaetzchen=0;
anweisungen="Unbekannt";
}
//Modifier titel
public String getTitel()
{
return titel;
}
public void setTitel(String x)
{
titel = x;
}
//Modifier anzahlPlaetzchen
public int getAnzahlPlaetzchen()
{
return anzahlPlaetzchen;
}
public void setAnzahlPlaetzchen(int x)
{
if(x>0)
{
anzahlPlaetzchen = x;
}
}
//Modifier anweisungen
public String getAnweisungen()
{
return anweisungen;
}
public void setAnweisungen(String x)
{
anweisungen = x;
}
public void passeAnFuer(int neueAnzahl)
{
double faktor=(double) 1/anzahlPlaetzchen*neueAnzahl;
for(int i=0; i<zutaten.size(); i++)
{
zutaten.get(i).setMenge(zutaten.get(i).getMenge()*faktor);
}
setAnzahlPlaetzchen(neueAnzahl);
}
}
Java:
class Zutat
{
private String name;
private double menge;
private String einheit;
//Konstruktor
public Zutat(String Name, double Menge, String Einheit)
{
name=Name;
menge=Menge;
einheit=Einheit;
}
//Konstruktor
public Zutat()
{
name="Unbenannt";
menge=0;
einheit="Unbenannt";
}
//Modifier name
public String getName()
{
return name;
}
public void setName(String x)
{
name = x;
}
//Modifier menge
public double getMenge()
{
return menge;
}
public void setMenge(double x)
{
if(x>0)
{
menge = x;
}
}
//Modifier einheit
public String getEinheit()
{
return einheit;
}
public void setEinheit(String x)
{
einheit = x;
}
}