Hallo unzwar soll ich eine Anwendung schreiben die klasse Flasche heißt und mit den attributen pfand größe und inhalt. Inhalt und pfandwert soll mit get und set methoden und Größe mit dem Konstruktor.
dann eine weitere anwendung Getränkekasten die 6 flaschen aufnehmen soll. also die werte sollen eingetippt werden und dann einem array zugefügt werden. Genau bei dem teil steck ich fest kann mir einer helfen.
hier ist schon mal das was ich habe
class Getränkekasten {
public static void main (String args[]) {
//Erzeugung des Array mit Laenge 6
Flasche[] kastarray = new Flasche[6];
//Objekte mit Werten belegen
for (int i=0; i<kastarray.length; i++) {
kastarray.setInhalt(JOptionPane.showInputDialog("Geben Sie den Inhalt der Flasche ein."));
kastarray= new Flasche(Double.parseDouble (JOptionPane.showInputDialog(null, "Geben Sie die Groesse der Flasche ein.")));
kastarray.setPfandwert(Double.parseDouble (JOptionPane.showInputDialog("Geben Sie den Pfandwert der Flasche ein.")));
}
for (int i = 0;i<kastarray.length;i++) {
System.out.println ("Inhalt: " + kastarray.getinhalt()+"\nGroesse: "+kastarraygroesse()+"\nPfandwert: "+kastarray.getpfandwert());
}
Also wenn Du eine Klasse schreiben willst (in diesem Fall Getränkekasten), dann musst Du in der Klasse Instanzenvariablen und Funktionen schreiben. Derzeit hast Du nur eine statische Main Methode, die einfach nichts mit der zu erstellenden Klasse zu tun hat.
Also überleg Dir, was Die Klasse für Daten halten soll und schreib die Funktionen dazu. Die Main Methode würde ich immer separat von den eigentlichen Klassen halten um da nichts zu vermengen.
Hallo Konrad
also ich hab ja eine klasse FLasche bei der ch instanzvariablen drin hab. Hier will ich ja das array erstellen und die inserierung.
ist das dann falsch?
Also Sinn dieser Klassen ist es (normalerweise), dass Du da Instanzen erzeugst. So wie Du ja mit new Flasche(...) neue Instanzen von Flasche erzeugst, sollte es für dich wichtig sein, dass Du Instanzen von Getraenkekasten erstellen kannst.
Jeder dieser Instanzen soll dann irgendwelche Eigenschaften haben. Dies könnte dann durchaus ein Array aus Flaschen sein: Flasche[] kastarray = new Flasche[6]; wobei ich die Namen anders vergeben würde. Das sind ja die Flaschen des Kastens. Dass es ein Getränkekasten ist, ist ja durch die Klasse schon gegeben, so dass ich da als Name statt kastarray einfach flaschen oder so nehmen würde.
Und dann müsstest Du halt noch die Funktionen schreiben, die Du so brauchst.
Deine Main-Methode sollte dann einen Kasten erstellen und die Flaschen hinzufügen. Also statt da ein Array zu erstellen und so könnte in der Main methode einfach ein neuer Kasten erzeugt werden und dann könnten Flaschen hinzugeführt werden.
Der Unterschied ist also, dass Du eine wirkliche Klasse Getraenkekasten erstellst anstatt eine Main Methode zu schreiben, die einfach mit einem Array von Flaschen etwas macht.
also hab das jetzt aufgebessert und in eine datei gepackt mit der flasche aber irgendwie sagt der, dass flasche als symbol nicht gefunden werden kann. Was mach ich dann?
//Erzeugung des Array mit Laenge 6
kastarray = new Flasche[6];
//Objekte mit Werten belegen
for (int i = 0; i<kastarray.length; i++) {
kastarray = new Flasche(Double.parseDouble(JOptionPane.showInputDialog(null, "Geben Sie die Groesse der Flasche ein.")));
kastarray.setInhalt(JOptionPane.showInputDialog("Geben Sie den Inhalt der Flasche ein."));
kastarray.setPfandwert(Double.parseDouble(JOptionPane.showInputDialog("Geben Sie den Pfandwert der Flasche ein.")));
}
Also Code bitte in die Code Tags setzen, so dass der Code lesbar ist.
Und du hast wieder einfach nur eine Main Methode und keine Getraenkekasten Implementation. Ein Getraenkekasten kasten = new Getraenkekasten() funktioniert zwar, aber Du hast keine Getränkekasten-Instanz mit der Du etwas machen könntest.
Und Du hast einfach nur einen Ablauf aber keinen universellen Getränkekasten. Einen Getränkekasten kann ich mit Flaschen füllen wie ich will. Und ich kann immer schauen, wie viele Flaschen drin sind, wie voll die Flaschen sind u.s.w.