Hi,
ich soll für die Uni einen Online-Shop machen und bin fast fertig. Auf den letzten Metern habe ich jetzt noch das Problem dass ich mit dem Static nicht zurande komme. Habe aber auch in beim Googlen nur gefunden, was es ist, aber nicht, wie ich damit richtig Arbeite.
In der Datei OnlineShop.java in Zeile 33 bekomme ich meinen Fehler. Da greife ich auf eine Funktion aus der Produktverwaltung.java(Z.58) zu. Fehlermeldung ist:
Würde mich freuen, wenn mir jemand ein Stichpunkt zum googlen oder aber direkt helfen könnte. Schonmal herzlichen Dank.
Pengwolf
-------------------
Folgende Dateien habe ich:
kunde.java
kundenverwaltung.java
Produkt.java
Produktverwaltung.java
OnlineShop.java
ich soll für die Uni einen Online-Shop machen und bin fast fertig. Auf den letzten Metern habe ich jetzt noch das Problem dass ich mit dem Static nicht zurande komme. Habe aber auch in beim Googlen nur gefunden, was es ist, aber nicht, wie ich damit richtig Arbeite.
In der Datei OnlineShop.java in Zeile 33 bekomme ich meinen Fehler. Da greife ich auf eine Funktion aus der Produktverwaltung.java(Z.58) zu. Fehlermeldung ist:
Code:
OnlineShop.java:33: non-static variable pv cannot be referenced from a static context
pv.GetAll();
^
1 error
Würde mich freuen, wenn mir jemand ein Stichpunkt zum googlen oder aber direkt helfen könnte. Schonmal herzlichen Dank.
Pengwolf
-------------------
Folgende Dateien habe ich:
kunde.java
Java:
public class Kunde{
private String nameDesKunden;
private String anschriftDesKunden;
public Kunde(String name, String anschrift) {
nameDesKunden = name;
anschriftDesKunden = anschrift;
}
public String GetName() {
return nameDesKunden;
}
public String GetAnschrift() {
return anschriftDesKunden;
}
}
kundenverwaltung.java
Java:
public class Kundenverwaltung{
private Kunde kundenListe[];
Kundenverwaltung() {
kundenListe[0] = new Kunde("Herbert Maier", "Kreutzweg 28a, 57072 Siegen");
kundenListe[1] = new Kunde("Heidi Schiffe", "Wellnesgasse 4, 13579 Schoenhausen");
kundenListe[2] = new Kunde("Claudia Klum", "Wellnesgasse 4, 13579 Schoenhausen");
kundenListe[3] = new Kunde("Peter Held", "Katzenweg 5, 98123 Froemmersbach");
}
public String GetKundenName(int id) {
return kundenListe[id].GetName();
}
public String GetKundenAnschrift(int id) {
return kundenListe[id].GetAnschrift();
}
public String GetAll() {
String erg="";
for(int i=0; i<= 3 ; i++) {
erg += i+" "+GetKundenName(i)+", "+GetKundenAnschrift(i)+"\n";
}
return erg;
}
}
Produkt.java
Java:
public class Produkt {
private double preisDerWare;
private String nameDerWare;
public Produkt(double preis, String name) {
preisDerWare = preis;
nameDerWare = name;
}
public void SetName(String name) {
nameDerWare = name;
}
public void SetPreis(double preis) {
preisDerWare = preis;
}
public String GetName() {
return nameDerWare;
}
public double GetPreis() {
return preisDerWare;
}
}
Produktverwaltung.java
Java:
import java.io.*;
public class Produktverwaltung {
private Produkt lagerBestand[];
private String ladeFehler;
private String sicherFehler;
public Produktverwaltung() {
lagerBestand[0] = new Produkt(24.99, "Suedwein");
lagerBestand[1] = new Produkt(129.99, "Edelburgunder");
lagerBestand[2] = new Produkt(3.49, "Speisekaese");
lagerBestand[3] = new Produkt(5.99, "Erdammer");
lagerBestand[4] = new Produkt(1499.00, "Trueffel");
}
public boolean LadeBestand() {
boolean bFehler = false;
try {
FileOutputStream fos = new FileOutputStream ("IO.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(lagerBestand);
oos.close();
} catch(IOException e) {
bFehler = true;
ladeFehler = ""+e;
}
return bFehler;
}
public boolean SicherBestand() {
boolean bFehler = false;
try {
FileInputStream fis = new FileInputStream ("IO.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
lagerBestand = (Produkt[]) ois.readObject();
ois.close();
} catch(Exception e) {
bFehler = true;
sicherFehler = ""+e;
}
return bFehler;
}
public String GetSicherFehler() {
return sicherFehler;
}
public String GetLadeFehler() {
return ladeFehler;
}
public String GetAll() {
String erg="";
for(int i=0;i <= lagerBestand.length; i++) {
erg += i+" "+lagerBestand[i].GetName() + ", " + lagerBestand[i].GetPreis();
}
return erg;
}
}
OnlineShop.java
Java:
import java.io.*;
public class OnlineShop{
private Produktverwaltung pv = new Produktverwaltung();
private Kundenverwaltung kv = new Kundenverwaltung();
public static int zeigeHauptmenue() {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String meldung = "", space = "";
int zahl = 0;
boolean bFehler = false;
do {
System.out.print(space+"Online-Shop Wunschshop\n-----------------------------\n1 - Produkte anzeigen\n2 - Bestellung aufgeben\n3 - Bestellung abschicken\n0 - Programm beenden\n\n"+meldung+"Auswahl (0-3): ");
try {
String eingabe = br.readLine();
zahl = Integer.parseInt(eingabe);
bFehler = false;
} catch(Exception e) {
meldung = "Falsche Eingabe! Bitte nur 0-3 Eingeben.\n";
space = "\n\n\n\n\n";
bFehler = true;
}
} while(bFehler);
return zahl;
}
public static void main(String args[]){
int auswahl = zeigeHauptmenue();
switch(auswahl) {
case 1:
//pv.GetAll(); <- Hier bekomme ich mein Problem mit dem Static!
break;
case 2:
case 3:
case 0:
}
}
}