Cannot make a static reference to the non-static method

Ich soll für ein Programmierungspraktikum innerhalb des Studium einen Briefmarkenautomaten in Java (in eclipse) programmieren, komme aber schlichtweg nicht weiter. Kann mir hier jemand weiterhelfen ?
Quellcode (Sendungstyp.java):
Java:
public class Sendungstyp {
//Attribute
double maxHoehe;
int maxGewicht;
double porto;
String bezeichnung;
//Konstruktor
public Sendungstyp(double maxHoehe, int maxGewicht, double porto, String bezeichnung) {
this.maxHoehe = maxHoehe;
this.maxGewicht = maxGewicht;
this.porto = porto;
this.bezeichnung = bezeichnung;
}
//get-Methoden
double getMaxHoehe() {
return maxHoehe;
}
int getMaxGewicht() {
return maxGewicht;
}
double getPorto() {
return porto;
}
String getBezeichnung() {
return bezeichnung;
}
//set-Methoden
void setMaxHoehe(double hoehe) {
this.maxHoehe = hoehe;
}
void setMaxGewicht(int maxGewicht)
{
this.maxGewicht = maxGewicht;
}
void setPorto(double porto) {
this.porto = porto;
}
void setBezeichnung(String bezeichnung) {
this.bezeichnung = bezeichnung;
}
final static Sendungstyp[] Sendungstyp = {
new Sendungstyp(0,0,0.45,"Postkarte"),
new Sendungstyp(0.5,20,0.70,"Standardbrief"),
new Sendungstyp(1.0,50,0.85,"Kompaktbrief"),
new Sendungstyp(2.0,500,1.45,"Großbrief"),
new Sendungstyp(5.0,1000,2.40,"Maxibrief")
};
public static Sendungstyp typ(int gewicht, double hoehe) {
if (hoehe == 0)
return Sendungstyp[0];
if (gewicht<=Sendungstyp[1].getMaxGewicht() && hoehe >0 && hoehe <= Sendungstyp[1].getMaxHoehe() )
return Sendungstyp[1];
if ((gewicht>Sendungstyp[1].getMaxGewicht() && gewicht<=Sendungstyp[2].getMaxGewicht() && hoehe <= Sendungstyp[2].getMaxHoehe() )||( hoehe > Sendungstyp[1].getMaxHoehe() && hoehe <= Sendungstyp[2].getMaxHoehe() && gewicht <= Sendungstyp[2].getMaxGewicht() ) )
return Sendungstyp[2];
if ((gewicht>Sendungstyp[2].getMaxGewicht() && gewicht<=Sendungstyp[3].getMaxGewicht() && hoehe <= Sendungstyp[3].getMaxHoehe() )|| ( hoehe > Sendungstyp[2].getMaxHoehe() && hoehe <= Sendungstyp[3].getMaxHoehe() && gewicht <= Sendungstyp[3].getMaxGewicht() ) )
return Sendungstyp[3];
if ((gewicht>Sendungstyp[3].getMaxGewicht() && gewicht<=Sendungstyp[4].getMaxGewicht() && hoehe <= Sendungstyp[4].getMaxHoehe() )|| ( hoehe > Sendungstyp[3].getMaxHoehe() && hoehe <= Sendungstyp[4].getMaxHoehe() && gewicht <= Sendungstyp[4].getMaxGewicht() ) )
return Sendungstyp[4];
else
System.out.println("ERROR: Bitte ueberpruefen Sie ihre Eingabe");
return null;
}
}

Quellcode (BriefmarkenAutomat.java):
Java:
import java.io.*;
import java.util.*;
import java.text.*;
public class BriefmarkenAutomat {
//Attribute
double hoeheDouble;
int gewichtInt;
double GesamtPorto;
int anzahlInt;
int anzahlMarken;
double restbetrag;
int[] rueckgeld= new int[6];
double einzelPorto = Sendungstyp.typ(gewichtInt,hoeheDouble).getPorto();
//Methode zur Berechnung des Gesamtportos
double getGesamtPorto() {
double GesamtPorto= anzahlInt*einzelPorto;
return GesamtPorto;
}
//Methode zur Auszahlung
int[] auszahlung(double restbetrag) {
this.restbetrag = restbetrag;
double ausgabe=restbetrag*-1;
int[] rueckgeld= new int[6];
while (ausgabe >= 2.0 ) {
ausgabe = ausgabe-2;
rueckgeld[0]=rueckgeld[0]+1;
}
while (ausgabe>=1.0) {
ausgabe = ausgabe-1;
rueckgeld[1]=rueckgeld[1]+1;

}
while (ausgabe>=0.5) {
ausgabe = ausgabe-0.5;
rueckgeld[2]=rueckgeld[2]+1;

}

while (ausgabe>=0.2) {
ausgabe = ausgabe-0.2;
rueckgeld[3]=rueckgeld[3]+1;

}
while (ausgabe>=0.10) {
ausgabe = ausgabe-0.1;
rueckgeld[4]=rueckgeld[4]+1;
}
while (ausgabe>=0.05) {
ausgabe = ausgabe-0.05;
rueckgeld[5]=rueckgeld[5]+1;
}

return rueckgeld;
}
//Ausgabe des Automaten
void Output() {
DecimalFormat df = new DecimalFormat( "###,##0.00" );
if (rueckgeld[0]==0 && rueckgeld[1]==0 && rueckgeld[2]==0 &&rueckgeld[3]==0 && rueckgeld[4]==0 && rueckgeld[5]==0)
System.out.println("Vielen Dank! Auf Wiedersehen!");
else
System.out.println("Sie erhalten: ");
if (rueckgeld[0]>=1) {
System.out.println(rueckgeld[0]+" mal 2 Euro"); }
if (rueckgeld[1]>=1) {
System.out.println(rueckgeld[1]+" mal 1 Euro"); }
if (rueckgeld[2]>=1) {
System.out.println(rueckgeld[2]+" mal 50 Cent"); }
if (rueckgeld[3]>=1) {
System.out.println(rueckgeld[3]+" mal 20 Cent"); }
if (rueckgeld[4]>=1) {
System.out.println(rueckgeld[4]+" mal 10 Cent"); }
if (rueckgeld[5]>=1) {
System.out.println(rueckgeld[5]+" mal 5 Cent"); }
// return restbetrag;
if (restbetrag == 0) {
System.out.println("Vielen Dank!");
}
if (restbetrag<0) {
System.out.println("Rueckgeld: "+df.format(restbetrag*-1)+" €");

}}
//Münzeinwurf
void Muenzeinwurf(){
DecimalFormat df = new DecimalFormat( "###,##0.00" );
while (restbetrag >0) {
System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:");
Scanner sc4 = new Scanner(System.in);
String Euro2 = sc.next();
if (Euro2.equals("a")){
continue;
}
int Euro2int = Integer.parseInt(Euro2);
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
Scanner sc5= new Scanner(System.in);
String Euro1 = sc.next();
if (Euro1.equals("a")){
continue;
}
int Euro1int = Integer.parseInt(Euro1);
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:");
Scanner sc6 = new Scanner(System.in);
String Cent50 = sc.next();
if (Cent50.equals("a")){
continue;
}
int Cent50int = Integer.parseInt(Cent50);
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:");
Scanner sc7 = new Scanner(System.in);
String Cent20 = sc.next();
if (Cent20.equals("a")){
continue;
}
int Cent20int = Integer.parseInt(Cent20);
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:");
Scanner sc8 = new Scanner(System.in);
String Cent10 = sc.next();
if (Cent10.equals("a")){
continue;
}
int Cent10int = Integer.parseInt(Cent10);
System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:");
Scanner sc9 = new Scanner(System.in);
String Cent05 = sc.next();
if (Cent05.equals("a")){
continue;
}
int Cent05int = Integer.parseInt(Cent05);
}
}
// Methode zur Bestimmung des Restbetrags
double getRestbetrag() {
restbetrag = GesamtPorto;
restbetrag = restbetrag-2*rueckgeld[0]-1*rueckgeld[1]-0.5*rueckgeld[2]-0.2*rueckgeld[3]-0.1*rueckgeld[4]-0.05*rueckgeld[5];
return restbetrag;
}
//Eingabe der Sendungsdetails
static void Sendungsdetails() {
while (true) {
System.out.println("Geben Sie das Gewicht an") ;
Scanner sc = new Scanner(System.in);
String gewicht = sc.next();
int gewichtInt = Integer.parseInt(gewicht);
System.out.println("Geben Sie die Hoehe an") ;
Scanner sc2 = new Scanner(System.in);
String hoehe = sc.next();
double hoeheDouble = Double.parseDouble(hoehe);
int anzahlInt;
while (true) {
System.out.println("Geben Sie die Anzahl an");
System.out.println("HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!");
Scanner sc3 = new Scanner(System.in);
String anzahl = sc.next();
int anzahlMarken = Integer.parseInt(anzahl);
if (anzahlMarken>10) {
System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
continue;
}
else
anzahlInt=anzahlMarken;
break;
}
DecimalFormat df = new DecimalFormat( "###,##0.00" );
System.out.println(anzahlInt+ " mal " + Sendungstyp.typ(gewichtInt, hoeheDouble).getBezeichnung() + " je " + df.format(Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto())+ " €");}
}

//Main-Methode
public static void main(String[] args) {
//EIngaben der Sendungsdetails durch Benutzer
Sendungsdetails();
//Muenzeinwurf
Muenzeinwurf();
//Ausgaben durch Automat
Output();

}
}

Als Fehler erhalte ich:
Cannot make a static reference to the non-static method Sendungsdetails() from the type BriefmarkenAutomat
Cannot make a static reference to the non-static method Muenzeinwurf() from the type BriefmarkenAutomat
Cannot make a static reference to the non-static method Output() from the type BriefmarkenAutomat
Als erstes soll der Sendungstyp über Höhe und Gewicht und dann das Gesamtporto (Anzahl der gewünschten Marken * Einzelporto), anschließend kann Geld eingeworfen werden.
Umsetzungsanforderung: Erstellen Sie für jeden sach-logischen Aspekt des Automaten eine eigene Methode
Könnt ihr mir bitte helfen ?

Vielen Dank und Gruß Jan
 

Java xyrse123

Bekanntes Mitglied
Entweder erstellst du in der main Methode ein neues Briefmarkenautomat Objekt :
Java:
BriefmarkenAutomat ba = new BriefmarkenAutomat();

ba.Muenzeinwurf();
//Ausgaben durch Automat
ba.Output();
oder du machst die Methoden Muenzeinwurf und Output auch statisch(statische Methoden sollten eigentlich vermieden werden), wie du es bei den anderen Methoden teilweise auch gemacht hast.
Einige Variablen sind auch doppelt und du brauchst auch nicht 6-7 Scanner, weil es dadurch ziemlich unübersichtlich wird.
 
Zuletzt bearbeitet:
Vielen Dank für die schnelle Hilfe. Habe nun ein neues Briefmarkenautomat Objekt erstellt. Der Münzeinwurf wird aber gar nicht aufgerufen, da der zu zahlende Betrag 0,00 € ist. Kannst du mir sagen, warum hier nicht der korrekte Betrag berechnet bzw. übergeben wird ?

Java:
import java.io.*;
import java.util.Scanner;
import java.util.*;
import java.text.*;
public class BriefmarkenAutomat {

    //Attribute
double hoeheDouble;
int gewichtInt;
double GesamtPorto;
int anzahlInt;
int anzahlMarken;
double restbetrag;
int[] rueckgeld= new int[6];
double einzelPorto = Sendungstyp.typ(gewichtInt,hoeheDouble).getPorto();


//Methode zur Berechnung des Gesamtportos
double getGesamtPorto() {
    double GesamtPorto= anzahlInt*einzelPorto;
return GesamtPorto;

}

//Methode zur Auszahlung   

int[] auszahlung(double restbetrag) {
        this.restbetrag = restbetrag;
   
    double ausgabe=restbetrag*-1;
   
    int[] rueckgeld= new int[6];

    while (ausgabe >= 2.0 ) {


        ausgabe = ausgabe-2;
        rueckgeld[0]=rueckgeld[0]+1;
       
    }


    while (ausgabe>=1.0) {

        ausgabe = ausgabe-1;
        rueckgeld[1]=rueckgeld[1]+1;
       
   
    }

    while (ausgabe>=0.5) {

        ausgabe = ausgabe-0.5;
        rueckgeld[2]=rueckgeld[2]+1;
       
   
    }
   

    while (ausgabe>=0.2) {

        ausgabe = ausgabe-0.2;
        rueckgeld[3]=rueckgeld[3]+1;
       
   
    }

    while (ausgabe>=0.10) {

        ausgabe = ausgabe-0.1;
        rueckgeld[4]=rueckgeld[4]+1;
       
    }

    while (ausgabe>=0.05) {

        ausgabe = ausgabe-0.05;
        rueckgeld[5]=rueckgeld[5]+1;
   
    }

   
    return rueckgeld;

    }
//Ausgabe des Automaten
void Output() {
    DecimalFormat df = new DecimalFormat( "###,##0.00" );

    if (rueckgeld[0]==0 && rueckgeld[1]==0 && rueckgeld[2]==0 &&rueckgeld[3]==0 && rueckgeld[4]==0 && rueckgeld[5]==0)
        System.out.println("Vielen Dank! Auf Wiedersehen!");
    else
    System.out.println("Sie erhalten: ");
    if (rueckgeld[0]>=1) {
    System.out.println(rueckgeld[0]+" mal 2 Euro"); }
    if (rueckgeld[1]>=1) {
    System.out.println(rueckgeld[1]+" mal 1 Euro"); }
    if (rueckgeld[2]>=1) {
    System.out.println(rueckgeld[2]+" mal 50 Cent"); }
    if (rueckgeld[3]>=1) {
    System.out.println(rueckgeld[3]+" mal 20 Cent"); }
    if (rueckgeld[4]>=1) {
    System.out.println(rueckgeld[4]+" mal 10 Cent"); }
    if (rueckgeld[5]>=1) {
    System.out.println(rueckgeld[5]+" mal 5 Cent"); }
    // return restbetrag;

    if (restbetrag == 0) {
        System.out.println("Vielen Dank!");

        }

    if (restbetrag<0) {
        System.out.println("Rueckgeld: "+df.format(restbetrag*-1)+" €");
       

    }}
//Münzeinwurf
void Muenzeinwurf(){

    DecimalFormat df = new DecimalFormat( "###,##0.00" );
    while (restbetrag >0) {

        System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:");
        Scanner sc4 = new Scanner(System.in);
        String Euro2 = sc.next();
            if (Euro2.equals("a")){
                continue;
            }
        int Euro2int = Integer.parseInt(Euro2);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
        Scanner sc5= new Scanner(System.in);
        String Euro1 = sc.next();
            if (Euro1.equals("a")){
                continue;
            }
        int Euro1int = Integer.parseInt(Euro1);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:");
        Scanner sc6 = new Scanner(System.in);
        String Cent50 = sc.next();
            if (Cent50.equals("a")){
                continue;
            }
        int Cent50int = Integer.parseInt(Cent50);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:");
        Scanner sc7 = new Scanner(System.in);
        String Cent20 = sc.next();
            if (Cent20.equals("a")){
                continue;
            }
        int Cent20int = Integer.parseInt(Cent20);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:");
        Scanner sc8 = new Scanner(System.in);
        String Cent10 = sc.next();
            if (Cent10.equals("a")){
                continue;
            }
        int Cent10int = Integer.parseInt(Cent10);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:");
        Scanner sc9 = new Scanner(System.in);
        String Cent05 = sc.next();
            if (Cent05.equals("a")){
                continue;
            }
        int Cent05int = Integer.parseInt(Cent05);
        }
   
}
// Methode zur Bestimmung des Restbetrags
double getRestbetrag() {
    restbetrag = GesamtPorto;
    restbetrag = restbetrag-2*rueckgeld[0]-1*rueckgeld[1]-0.5*rueckgeld[2]-0.2*rueckgeld[3]-0.1*rueckgeld[4]-0.05*rueckgeld[5];
    return restbetrag;
}
//Eingabe der Sendungsdetails
void Sendungsdetails() {
while (true)    {
     System.out.println("Geben Sie das Gewicht an")    ;
     Scanner sc = new Scanner(System.in);
     String gewicht = sc.next();
     int gewichtInt = Integer.parseInt(gewicht);
     System.out.println("Geben Sie die Hoehe an")    ;
     Scanner sc2 = new Scanner(System.in);
     String hoehe = sc.next();
     double hoeheDouble = Double.parseDouble(hoehe);
     int anzahlInt;
     while (true) {
     System.out.println("Geben Sie die Anzahl an");
     System.out.println("HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!");
     Scanner sc3 = new Scanner(System.in);
     String anzahl = sc.next();
     int anzahlMarken = Integer.parseInt(anzahl);
     if (anzahlMarken>10) {
         System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
      continue;
     }
      else
          anzahlInt=anzahlMarken;
          break;
     }
     DecimalFormat df = new DecimalFormat( "###,##0.00" );
     System.out.println(anzahlInt+ " mal " + Sendungstyp.typ(gewichtInt, hoeheDouble).getBezeichnung() + " je " + df.format(Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto())+ " €");
        System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
        }
}

//---------------------------------------------------------------
//Main-Methode
public static  void main(String[] args) {
        BriefmarkenAutomat ba = new BriefmarkenAutomat();
       
//EIngaben der Sendungsdetails durch Benutzer
ba.Sendungsdetails();

//Muenzeinwurf
ba.Muenzeinwurf();

//Ausgaben durch Automat
ba.Output();

       
    }
   
}

PS: Wie kann ich das mit den vielen sc-Variablen umgehen ? Wenn ich überall einfach "sc" schreibe zeigt eclipse "Duplicate local variable".
 

Java xyrse123

Bekanntes Mitglied
Erstelle dir einfach eine globale Variable
Java:
double hoeheDouble;
int gewichtInt;
double GesamtPorto;
int anzahlInt;
Scanner sc = new Scanner(System.in); // überall nutzbar
...
,

die ist dann im ganzen Briefmarkenautomaten nutzbar.
Du hast bei Sendungsdetails eine Endlosschleife, sodass Muenzeinwurf eigentlich nicht erreicht werden kann.
Ich blicke da nicht wirklich durch,aber ich glaube du änderst nirgendwo deinen restbetrag:
Java:
restbetrag = Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto()*anzahlInt;
     System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
 
Zuletzt bearbeitet:

Java xyrse123

Bekanntes Mitglied
Ich bekomme jetzt folgende Ausgabe, müsste so eigentlich stimmen:
Geben Sie das Gewicht an
4
Geben Sie die Hoehe an
5
Geben Sie die Anzahl an
HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!
8
8 mal Maxibrief je 2,40 €
zu zahlender Betrag:19,20 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
5
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
4
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
3
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:
6
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:
7
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:
8
zu zahlender Betrag:2,50 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
1
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
0
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
1
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:
0
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:
0
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:
0
Vielen Dank! Auf Wiedersehen!
Rueckgeld: 0,00 €

Du musst in dem Muenzeinwurf auch den restbetrag verändern, also die Werte abziehen:
Java:
 int Euro2int = Integer.parseInt(Euro2);
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        restbetrag = restbetrag- 2*Euro2int;
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
 
Java:
import java.io.*;
import java.util.Scanner;
import java.util.*;
import java.text.*;
public class BriefmarkenAutomat {

    //Attribute
double hoeheDouble;
int gewichtInt;
double GesamtPorto;
int anzahlInt;
Scanner sc = new Scanner(System.in);
int anzahlMarken;
double restbetrag;
int[] rueckgeld= new int[6];
double einzelPorto = Sendungstyp.typ(gewichtInt,hoeheDouble).getPorto();


//Methode zur Berechnung des Gesamtportos
double getGesamtPorto(int anzahlInt, double einzelPorto) {
    this.anzahlInt = anzahlInt;
    this.einzelPorto = einzelPorto;
    double GesamtPorto= anzahlInt*einzelPorto;
return GesamtPorto;

}

//Methode zur Auszahlung  

int[] auszahlung(double restbetrag) {
        this.restbetrag = restbetrag;
  
    double ausgabe=restbetrag*-1;
  
    int[] rueckgeld= new int[6];

    while (ausgabe >= 2.0 ) {


        ausgabe = ausgabe-2;
        rueckgeld[0]=rueckgeld[0]+1;
      
    }


    while (ausgabe>=1.0) {

        ausgabe = ausgabe-1;
        rueckgeld[1]=rueckgeld[1]+1;
      
  
    }

    while (ausgabe>=0.5) {

        ausgabe = ausgabe-0.5;
        rueckgeld[2]=rueckgeld[2]+1;
      
  
    }
  

    while (ausgabe>=0.2) {

        ausgabe = ausgabe-0.2;
        rueckgeld[3]=rueckgeld[3]+1;
      
  
    }

    while (ausgabe>=0.10) {

        ausgabe = ausgabe-0.1;
        rueckgeld[4]=rueckgeld[4]+1;
      
    }

    while (ausgabe>=0.05) {

        ausgabe = ausgabe-0.05;
        rueckgeld[5]=rueckgeld[5]+1;
  
    }

  
    return rueckgeld;

    }
//Ausgabe des Automaten
void Output() {
    DecimalFormat df = new DecimalFormat( "###,##0.00" );

    if (rueckgeld[0]==0 && rueckgeld[1]==0 && rueckgeld[2]==0 &&rueckgeld[3]==0 && rueckgeld[4]==0 && rueckgeld[5]==0)
        System.out.println("Vielen Dank! Auf Wiedersehen!");
    else
    System.out.println("Sie erhalten: ");
    if (rueckgeld[0]>=1) {
    System.out.println(rueckgeld[0]+" mal 2 Euro"); }
    if (rueckgeld[1]>=1) {
    System.out.println(rueckgeld[1]+" mal 1 Euro"); }
    if (rueckgeld[2]>=1) {
    System.out.println(rueckgeld[2]+" mal 50 Cent"); }
    if (rueckgeld[3]>=1) {
    System.out.println(rueckgeld[3]+" mal 20 Cent"); }
    if (rueckgeld[4]>=1) {
    System.out.println(rueckgeld[4]+" mal 10 Cent"); }
    if (rueckgeld[5]>=1) {
    System.out.println(rueckgeld[5]+" mal 5 Cent"); }
    // return restbetrag;

    if (restbetrag == 0) {
        System.out.println("Vielen Dank!");

        }

    if (restbetrag<0) {
        System.out.println("Rueckgeld: "+df.format(restbetrag*-1)+" €");
      

    }}
//Münzeinwurf
void Muenzeinwurf(){

    DecimalFormat df = new DecimalFormat( "###,##0.00" );
    while (restbetrag >0) {

        System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:");
        Scanner sc4 = new Scanner(System.in);
        String Euro2 = sc.next();
            if (Euro2.equals("a")){
                continue;
            }
        int Euro2int = Integer.parseInt(Euro2);
        restbetrag = restbetrag- 2*Euro2int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
        Scanner sc5= new Scanner(System.in);
        String Euro1 = sc.next();
            if (Euro1.equals("a")){
                continue;
            }
        int Euro1int = Integer.parseInt(Euro1);
        restbetrag = restbetrag- 1*Euro1int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:");
        Scanner sc6 = new Scanner(System.in);
        String Cent50 = sc.next();
            if (Cent50.equals("a")){
                continue;
            }
        int Cent50int = Integer.parseInt(Cent50);
        restbetrag = restbetrag- 0.5*Cent50int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:");
        Scanner sc7 = new Scanner(System.in);
        String Cent20 = sc.next();
            if (Cent20.equals("a")){
                continue;
            }
        int Cent20int = Integer.parseInt(Cent20);
        restbetrag = restbetrag- 0.2*Cent20int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:");
        Scanner sc8 = new Scanner(System.in);
        String Cent10 = sc.next();
            if (Cent10.equals("a")){
                continue;
            }
        int Cent10int = Integer.parseInt(Cent10);
        restbetrag = restbetrag- 0.1*Cent10int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:");
        Scanner sc9 = new Scanner(System.in);
        String Cent05 = sc.next();
            if (Cent05.equals("a")){
                continue;
            }
        int Cent05int = Integer.parseInt(Cent05);
        restbetrag = restbetrag- 0.05*Cent05int;
        }
  
}

//Eingabe der Sendungsdetails
void Sendungsdetails() {
     System.out.println("Geben Sie das Gewicht an")    ;
     Scanner sc = new Scanner(System.in);
     String gewicht = sc.next();
     int gewichtInt = Integer.parseInt(gewicht);
     System.out.println("Geben Sie die Hoehe an")    ;
     Scanner sc2 = new Scanner(System.in);
     String hoehe = sc.next();
     double hoeheDouble = Double.parseDouble(hoehe);
     int anzahlInt;
     while (true) {
     System.out.println("Geben Sie die Anzahl an");
     System.out.println("HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!");
     Scanner sc3 = new Scanner(System.in);
     String anzahl = sc.next();
     int anzahlMarken = Integer.parseInt(anzahl);
     if (anzahlMarken>10) {
         System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
      continue;
     }
      else
          anzahlInt=anzahlMarken;
          break;
     }
     DecimalFormat df = new DecimalFormat( "###,##0.00" );
     System.out.println(anzahlInt+ " mal " + Sendungstyp.typ(gewichtInt, hoeheDouble).getBezeichnung() + " je " + df.format(Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto())+ " €");
     restbetrag = Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto()*anzahlInt;
        System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");

        }



//---------------------------------------------------------------
//Main-Methode
public static  void main(String[] args) {
        BriefmarkenAutomat ba = new BriefmarkenAutomat();
    while (true)    {
//EIngaben der Sendungsdetails durch Benutzer
ba.Sendungsdetails();

//Muenzeinwurf
ba.Muenzeinwurf();

//Ausgaben durch Automat
ba.Output();
}
      
    }
  
}
[/code]

Es wird nicht ausgegeben, wie das Geld zurückgegeben wird, bzw. die Werte im Rueckgeld-Array sind Null.

Geben Sie das Gewicht an
17
Geben Sie die Hoehe an
0.3
Geben Sie die Anzahl an
HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!
9
9 mal Standardbrief je 0,70 €
zu zahlender Betrag:6,30 €
zu zahlender Betrag:6,30 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
3
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
2
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
a
Vielen Dank! Auf Wiedersehen!
Rueckgeld: 1,70 €
Geben Sie das Gewicht an
 
Zuletzt bearbeitet:
Java:
import java.util.*;
import java.text.*;
public class BriefmarkenAutomat {

    //Attribute
double hoeheDouble;
int gewichtInt;
double GesamtPorto;
int anzahlInt;
Scanner sc = new Scanner(System.in);
int anzahlMarken;
double restbetrag;
int[] rueckgeld = new int[6];
double einzelPorto = Sendungstyp.typ(gewichtInt,hoeheDouble).getPorto();

//get Restbetrag
double getRestbetrag() {
    return restbetrag;
}

//Methode zur Berechnung des Gesamtportos
double getGesamtPorto(int anzahlInt, double einzelPorto) {
    this.anzahlInt = anzahlInt;
    this.einzelPorto = einzelPorto;
    double GesamtPorto= anzahlInt*einzelPorto;
return GesamtPorto;

}

//Methode zur Auszahlung 

int[] auszahlung(double restbetrag) {
        this.restbetrag = restbetrag;
 
    double ausgabe=restbetrag*-1;


int ausgabe2Euro = 0;
    while (ausgabe >= 2.0 ) {


        ausgabe = ausgabe-2;
       ausgabe2Euro=ausgabe2Euro+1;
     
    }

    int ausgabe1Euro = 0;
    while (ausgabe>=1.0) {

        ausgabe = ausgabe-1;
       ausgabe1Euro=ausgabe1Euro+1;
     
 
    }
    int ausgabe50Cent = 0;

    while (ausgabe>=0.5) {

        ausgabe = ausgabe-0.5;
       ausgabe50Cent = ausgabe50Cent+1;
     
 
    }
 
    int ausgabe20Cent = 0;

    while (ausgabe>=0.2) {

        ausgabe = ausgabe-0.2;
      ausgabe20Cent =  ausgabe20Cent+1;
     
 
    }
int ausgabe10Cent = 0;

    while (ausgabe>=0.10) {

        ausgabe = ausgabe-0.1;
       ausgabe10Cent=ausgabe10Cent+1;
     
    }
int ausgabe5Cent = 0;
    while (ausgabe>=0.05) {

        ausgabe = ausgabe-0.05;
    ausgabe5Cent = ausgabe5Cent+1;
 
    }

    int [] rueckgeld= {ausgabe2Euro, ausgabe1Euro, ausgabe50Cent, ausgabe20Cent, ausgabe10Cent, ausgabe5Cent};
    return rueckgeld;

    }
//Ausgabe des Automaten
void Output(int[] rueckgeld) {
    DecimalFormat df = new DecimalFormat( "###,##0.00" );
this.rueckgeld=rueckgeld;
if (restbetrag<0) {
    System.out.println("Rueckgeld: "+df.format(restbetrag*-1)+" €");
 
}
    if (rueckgeld[0]==0 && rueckgeld[1]==0 && rueckgeld[2]==0 &&rueckgeld[3]==0 && rueckgeld[4]==0 && rueckgeld[5]==0)
     System.out.println("Vielen Dank! Auf Wiedersehen!");
    else
    System.out.println("Sie erhalten: ");
    if (rueckgeld[0]>=1) {
    System.out.println(rueckgeld[0]+" mal 2 Euro"); }
    if (rueckgeld[1]>=1) {
    System.out.println(rueckgeld[1]+" mal 1 Euro"); }
    if (rueckgeld[2]>=1) {
    System.out.println(rueckgeld[2]+" mal 50 Cent"); }
    if (rueckgeld[3]>=1) {
    System.out.println(rueckgeld[3]+" mal 20 Cent"); }
    if (rueckgeld[4]>=1) {
    System.out.println(rueckgeld[4]+" mal 10 Cent"); }
    if (rueckgeld[5]>=1) {
    System.out.println(rueckgeld[5]+" mal 5 Cent"); }
    System.out.println("Auf Wiedersehen!");


        }


//Münzeinwurf
void Muenzeinwurf(){

    DecimalFormat df = new DecimalFormat( "###,##0.00" );
    while (restbetrag >0) {

        System.out.println("zu zahlender Betrag:"+df.format(restbetrag)+" €");
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:");
        Scanner sc4 = new Scanner(System.in);
        String Euro2 = sc.next();
            if (Euro2.equals("a")){
                continue;
            }
        int Euro2int = Integer.parseInt(Euro2);
        restbetrag = restbetrag- 2*Euro2int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
        Scanner sc5= new Scanner(System.in);
        String Euro1 = sc.next();
            if (Euro1.equals("a")){
                continue;
            }
        int Euro1int = Integer.parseInt(Euro1);
        restbetrag = restbetrag- 1*Euro1int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:");
        Scanner sc6 = new Scanner(System.in);
        String Cent50 = sc.next();
            if (Cent50.equals("a")){
                continue;
            }
        int Cent50int = Integer.parseInt(Cent50);
        restbetrag = restbetrag- 0.5*Cent50int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:");
        Scanner sc7 = new Scanner(System.in);
        String Cent20 = sc.next();
            if (Cent20.equals("a")){
                continue;
            }
        int Cent20int = Integer.parseInt(Cent20);
        restbetrag = restbetrag- 0.2*Cent20int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:");
        Scanner sc8 = new Scanner(System.in);
        String Cent10 = sc.next();
            if (Cent10.equals("a")){
                continue;
            }
        int Cent10int = Integer.parseInt(Cent10);
        restbetrag = restbetrag- 0.1*Cent10int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:");
        Scanner sc9 = new Scanner(System.in);
        String Cent05 = sc.next();
            if (Cent05.equals("a")){
                continue;
            }
        int Cent05int = Integer.parseInt(Cent05);
        restbetrag = restbetrag- 0.05*Cent05int;
        }
 
}

//Eingabe der Sendungsdetails
void Sendungsdetails() {
     System.out.println("Geben Sie das Gewicht an")    ;
     Scanner sc = new Scanner(System.in);
     String gewicht = sc.next();
     int gewichtInt = Integer.parseInt(gewicht);
     System.out.println("Geben Sie die Hoehe an")    ;
     Scanner sc2 = new Scanner(System.in);
     String hoehe = sc.next();
     double hoeheDouble = Double.parseDouble(hoehe);
     int anzahlInt;
     while (true) {
     System.out.println("Geben Sie die Anzahl an");
     System.out.println("HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!");
     Scanner sc3 = new Scanner(System.in);
     String anzahl = sc.next();
     int anzahlMarken = Integer.parseInt(anzahl);
     if (anzahlMarken>10) {
         System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
      continue;
     }
      else
          anzahlInt=anzahlMarken;
          break;
     }
     DecimalFormat df = new DecimalFormat( "###,##0.00" );
     System.out.println(anzahlInt+ " mal " + Sendungstyp.typ(gewichtInt, hoeheDouble).getBezeichnung() + " je " + df.format(Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto())+ " €");
     restbetrag = Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto()*anzahlInt;

        }



//---------------------------------------------------------------------------------------//

//Main-Methode
public static  void main(String[] args) {
        BriefmarkenAutomat ba = new BriefmarkenAutomat();
    while (true)    {
//EIngaben der Sendungsdetails durch Benutzer
ba.Sendungsdetails();

//Muenzeinwurf
ba.Muenzeinwurf();

//Ausgaben durch Automat
ba.Output(ba.auszahlung(ba.getRestbetrag()));
}
     
    }
 
}

Nun funktioniert alles wie gewollt..... Danke!

Geben Sie das Gewicht an
17
Geben Sie die Hoehe an
0.3
Geben Sie die Anzahl an
HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!
3
3 mal Standardbrief je 0,70 €
zu zahlender Betrag:2,10 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
2
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
1
Sie können den Vorgang jederzeit durch Druecken von 'a' abrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
a
Rueckgeld: 2,90 €
Sie erhalten:
1 mal 2 Euro
1 mal 50 Cent
2 mal 20 Cent
Auf Wiedersehen!
Geben Sie das Gewicht an
 
Zu früh gefreut, kannst du mir noch bei einem möglichen Rundungsproblem helfen ?
Rueckgeld: 9,85 €
Sie erhalten:
4 mal 2 Euro
1 mal 1 Euro
1 mal 50 Cent
1 mal 20 Cent
1 mal 10 Cent
Auf Wiedersehen!

Ich müsste hier die Variable ausgabe wohl aufrunden auf 2 Stellen (denke ich):
Code:
//Methode zur Auszahlung 

int[] auszahlung(double restbetrag) {
        this.restbetrag = restbetrag;

    double ausgabe=(restbetrag*-1);

Wie mache ich das ?

Danke.
 

httpdigest

Top Contributor
Das ist ein Paradebeispiel dafür, warum man für eigentlich Festkommawerte (du brauchst nur 2 Nachkommastellen) keine Fließkommawerte verwenden sollte. Meine Empfehlung: Rechne mit Ganzzahlwerten (int oder long) in Cents. Z.B.: so:
Java:
import java.util.Arrays;
public class Test {
    public static void main(String[] args) {
        System.out.println(Arrays.toString(auszahlung(985)));
    }
    static int[] auszahlung(int restbetragInCents) {
        /* Mögliche Auszahlungen: 2 Euro, 1 Euro, 50 Cents, 20 Cents, 10 Cents, 5 Cents */
        int[] moeglicheAuszahlungen = { 200, 100, 50, 20, 10, 5 };
        int[] auszahlung = new int[moeglicheAuszahlungen.length];
        for (int i = 0; restbetragInCents > 0 && i < moeglicheAuszahlungen.length; i++) {
            int div = restbetragInCents / moeglicheAuszahlungen[i];
            auszahlung[i] = div;
            restbetragInCents -= div * moeglicheAuszahlungen[i];
        }
        return auszahlung;
    }
}
Alternative wäre BigDecimal zu verwenden.
 
Ok. Habe nun das Porto und auch den Restbetrag auf int umgestellt (rechne also mit Cent-Beträgen) und nur bei den Ausgaben caste ich den Typ auf double und teile durch 100.
Konnte bei mehreren Tests keine Fehler finden:

Java:
import java.util.*;
import java.text.*;
import java.lang.Math.*;
public class BriefmarkenAutomat {
    //Attribute
double hoeheDouble;
int gewichtInt;
int GesamtPorto;
int anzahlInt;
Scanner sc = new Scanner(System.in);
int anzahlMarken;
int restbetrag;
int[] rueckgeld = new int[6];
int einzelPorto = Sendungstyp.typ(gewichtInt,hoeheDouble).getPorto();
//get Restbetrag
int getRestbetrag() {
 return restbetrag;
}
//Methode zur Berechnung des Gesamtportos
int getGesamtPorto(int anzahlInt, int einzelPorto) {
    this.anzahlInt = anzahlInt;
    this.einzelPorto = einzelPorto;
  int GesamtPorto= anzahlInt*einzelPorto;
return GesamtPorto;
}
//Methode zur Auszahlung
int[] auszahlung(int restbetrag) {
        this.restbetrag = restbetrag;
    int ausgabe=(restbetrag*-1);
int ausgabe2Euro = 0;
    while (ausgabe >= 200 ) {

        ausgabe = ausgabe-200;
       ausgabe2Euro=ausgabe2Euro+1;
     
    }
    int ausgabe1Euro = 0;
    while (ausgabe>=100) {
        ausgabe = ausgabe-100;
       ausgabe1Euro=ausgabe1Euro+1;
     
 
    }
    int ausgabe50Cent = 0;
    while (ausgabe>=50) {
        ausgabe = ausgabe-50;
       ausgabe50Cent = ausgabe50Cent+1;
     
 
    }
 
    int ausgabe20Cent = 0;
    while (ausgabe>=20) {
        ausgabe = ausgabe-20;
      ausgabe20Cent =  ausgabe20Cent+1;
     
 
    }
int ausgabe10Cent = 0;
    while (ausgabe>=10) {
        ausgabe = ausgabe-10;
       ausgabe10Cent=ausgabe10Cent+1;
     
    }
int ausgabe5Cent = 0;
    while (ausgabe>=5) {
        ausgabe = ausgabe-5;
    ausgabe5Cent = ausgabe5Cent+1;
 
    }
    int [] rueckgeld= {ausgabe2Euro, ausgabe1Euro, ausgabe50Cent, ausgabe20Cent, ausgabe10Cent, ausgabe5Cent};
    return rueckgeld;
    }
//Ausgabe des Automaten
void Output(int[] rueckgeld) {
    DecimalFormat df = new DecimalFormat( "###,##0.00" );
this.rueckgeld=rueckgeld;
if (restbetrag<5) {
    System.out.println("Rueckgeld: "+df.format(((double)restbetrag*-1)/100)+" €");
 
}
    if (rueckgeld[0]==0 && rueckgeld[1]==0 && rueckgeld[2]==0 &&rueckgeld[3]==0 && rueckgeld[4]==0 && rueckgeld[5]==0)
     System.out.println("Vielen Dank! Auf Wiedersehen!\n"+"------------------------------------------------------------------------\n");
    else {
    System.out.println("Sie erhalten: ");
    if (rueckgeld[0]>=1) {
    System.out.println(rueckgeld[0]+" mal 2 Euro"); }
    if (rueckgeld[1]>=1) {
    System.out.println(rueckgeld[1]+" mal 1 Euro"); }
    if (rueckgeld[2]>=1) {
    System.out.println(rueckgeld[2]+" mal 50 Cent"); }
    if (rueckgeld[3]>=1) {
    System.out.println(rueckgeld[3]+" mal 20 Cent"); }
    if (rueckgeld[4]>=1) {
    System.out.println(rueckgeld[4]+" mal 10 Cent"); }
    if (rueckgeld[5]>=1) {
    System.out.println(rueckgeld[5]+" mal 5 Cent"); }
   
    System.out.println("Auf Wiedersehen!\n"+"------------------------------------------------------------------------\n");
    }
        }

//Münzeinwurf
void Muenzeinwurf(){
    DecimalFormat df = new DecimalFormat( "###,##0.00" );
    while (restbetrag >4) {
        System.out.println("zu zahlender Betrag:"+df.format((double)restbetrag/100)+" €");
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:");
        Scanner sc4 = new Scanner(System.in);
        String Euro2 = sc.next();
            if (Euro2.equals("a")){
                continue;
            }
        int Euro2int = Integer.parseInt(Euro2);
        restbetrag = restbetrag- 200*Euro2int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:");
        Scanner sc5= new Scanner(System.in);
        String Euro1 = sc.next();
            if (Euro1.equals("a")){
                continue;
            }
        int Euro1int = Integer.parseInt(Euro1);
        restbetrag = restbetrag- 100*Euro1int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:");
        Scanner sc6 = new Scanner(System.in);
        String Cent50 = sc.next();
            if (Cent50.equals("a")){
                continue;
            }
        int Cent50int = Integer.parseInt(Cent50);
        restbetrag = restbetrag- 50*Cent50int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:");
        Scanner sc7 = new Scanner(System.in);
        String Cent20 = sc.next();
            if (Cent20.equals("a")){
                continue;
            }
        int Cent20int = Integer.parseInt(Cent20);
        restbetrag = restbetrag- 20*Cent20int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:");
        Scanner sc8 = new Scanner(System.in);
        String Cent10 = sc.next();
            if (Cent10.equals("a")){
                continue;
            }
        int Cent10int = Integer.parseInt(Cent10);
        restbetrag = restbetrag- 10*Cent10int;
        System.out.println("Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen");
        System.out.println("Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:");
        Scanner sc9 = new Scanner(System.in);
        String Cent05 = sc.next();
            if (Cent05.equals("a")){
                continue;
            }
        int Cent05int = Integer.parseInt(Cent05);
        restbetrag = restbetrag- 5*Cent05int;
        }
 
}
//Eingabe der Sendungsdetails
void Sendungsdetails() {
     System.out.println("Geben Sie das Gewicht an")    ;
     Scanner sc = new Scanner(System.in);
     String gewicht = sc.next();
     int gewichtInt = Integer.parseInt(gewicht);
     System.out.println("Geben Sie die Hoehe an")    ;
     Scanner sc2 = new Scanner(System.in);
     String hoehe = sc.next();
     double hoeheDouble = Double.parseDouble(hoehe);
     int anzahlInt;
     while (true) {
     System.out.println("Geben Sie die Anzahl an");
     System.out.println("HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!");
     Scanner sc3 = new Scanner(System.in);
     String anzahl = sc.next();
     int anzahlMarken = Integer.parseInt(anzahl);
     if (anzahlMarken>10) {
         System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
      continue;
     }
      else
          anzahlInt=anzahlMarken;
          break;
     }
     DecimalFormat df = new DecimalFormat( "###,##0.00" );
     System.out.println(anzahlInt+ " mal " + Sendungstyp.typ(gewichtInt, hoeheDouble).getBezeichnung() + " je " + df.format(((double)Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto()/100))+ " €");
     restbetrag = Sendungstyp.typ(gewichtInt, hoeheDouble).getPorto()*anzahlInt;
        }

//---------------------------------------------------------------------------------------//
//Main-Methode
public static  void main(String[] args) {
        BriefmarkenAutomat ba = new BriefmarkenAutomat();
    while (true)    {
//Eingaben der Sendungsdetails durch Benutzer
ba.Sendungsdetails();
//Muenzeinwurf
ba.Muenzeinwurf();
//Ausgaben durch Automat
ba.Output(ba.auszahlung(ba.getRestbetrag()));
}
     
    }
 
}
und Sendungstyp (hier muss das Porto im Array natürlich auch als Centbetrag gespeichert werden)
Java:
public class Sendungstyp {

    //Attribute
 
    double maxHoehe;
    int maxGewicht;
    int porto;
    String bezeichnung;
 
    //Konstruktor
 
    public Sendungstyp(double maxHoehe, int maxGewicht, int porto, String bezeichnung) {
        this.maxHoehe = maxHoehe;
        this.maxGewicht = maxGewicht;
        this.porto = porto;
        this.bezeichnung = bezeichnung;
    }
    //get-Methoden
 
    double getMaxHoehe() {
        return maxHoehe;
    }
    int getMaxGewicht() {
        return maxGewicht;
    }
int getPorto() {
        return porto;
    }
    String getBezeichnung() {
        return bezeichnung;
    }
 
    //set-Methoden
 
    void setMaxHoehe(double hoehe) {
        this.maxHoehe = hoehe;
    }
    void setMaxGewicht(int maxGewicht)
    {
        this.maxGewicht = maxGewicht;
    }
    void setPorto(int porto) {
        this.porto = porto;
    }
    void setBezeichnung(String bezeichnung) {
        this.bezeichnung = bezeichnung;
    }
 
    final static Sendungstyp[] Sendungstyp = {
    new Sendungstyp(0,0,45,"Postkarte"),
    new Sendungstyp(0.5,20,70,"Standardbrief"),
    new Sendungstyp(1.0,50,85,"Kompaktbrief"),
    new Sendungstyp(2.0,500,145,"Großbrief"),
    new Sendungstyp(5.0,1000,240,"Maxibrief")
    };
 
    public static Sendungstyp typ(int gewicht, double hoehe) {
        if (hoehe == 0)
            return Sendungstyp[0];
        if (gewicht<=Sendungstyp[1].getMaxGewicht() && hoehe >0 && hoehe <= Sendungstyp[1].getMaxHoehe() )
            return Sendungstyp[1];
        if ((gewicht>Sendungstyp[1].getMaxGewicht() && gewicht<=Sendungstyp[2].getMaxGewicht() && hoehe <= Sendungstyp[2].getMaxHoehe() )||( hoehe > Sendungstyp[1].getMaxHoehe() && hoehe <= Sendungstyp[2].getMaxHoehe() && gewicht <= Sendungstyp[2].getMaxGewicht() ) )
            return Sendungstyp[2];
        if ((gewicht>Sendungstyp[2].getMaxGewicht() && gewicht<=Sendungstyp[3].getMaxGewicht() && hoehe <= Sendungstyp[3].getMaxHoehe() )|| ( hoehe > Sendungstyp[2].getMaxHoehe() && hoehe <= Sendungstyp[3].getMaxHoehe() && gewicht <= Sendungstyp[3].getMaxGewicht() ) )
            return Sendungstyp[3];
        if ((gewicht>Sendungstyp[3].getMaxGewicht() && gewicht<=Sendungstyp[4].getMaxGewicht() && hoehe <= Sendungstyp[4].getMaxHoehe() )|| ( hoehe > Sendungstyp[3].getMaxHoehe() && hoehe <= Sendungstyp[4].getMaxHoehe() && gewicht <= Sendungstyp[4].getMaxGewicht() ) )
            return Sendungstyp[4];
        else
     
            System.out.println("ERROR: Bitte ueberpruefen Sie ihre Eingabe");
            return null;
 
    }
                                          
}

Ausgabe:
Geben Sie das Gewicht an
20
Geben Sie die Hoehe an
2.7
Geben Sie die Anzahl an
HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!
3
3 mal Maxibrief je 2,40 €
zu zahlender Betrag:7,20 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
4
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
1
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
0
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:
1
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:
0
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:
0
Rueckgeld: 2,00 €
Sie erhalten:
1 mal 2 Euro
Auf Wiedersehen!
Geben Sie das Gewicht an
9
Geben Sie die Hoehe an
1
Geben Sie die Anzahl an
HINWEIS: Es koennen nur maximal 10 Briefmarken gedruckt werden!
9
9 mal Kompaktbrief je 0,85 €
zu zahlender Betrag:7,65 €
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 2€-Münzen an:
39
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 1€-Münzen an:
33337
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,50€-Münzen an:
33
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,20€-Münzen an:
2223
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,10€-Münzen an:
21
Sie können den Vorgang jederzeit durch Druecken von 'a' abbrechen
Bitte geben Sie die Anzahl der eingeworfenen 0,05€-Münzen an:
44
Rueckgeld: 33.872,75 €
Sie erhalten:
16936 mal 2 Euro
1 mal 50 Cent
1 mal 20 Cent
1 mal 5 Cent
Auf Wiedersehen!
------------------------------------------------------------------------
 
Zuletzt bearbeitet:

Blender3D

Top Contributor
Ich soll für ein Programmierungspraktikum innerhalb des Studium einen Briefmarkenautomaten in Java (in eclipse) programmieren, komme aber schlichtweg nicht weiter. Kann mir hier jemand weiterhelfen ?
Dein Hauptproblem ist der Aufbau Deines Codes. Du willst alles auf einmal lösen. Tipp teile und herrsche.
Das bedeutet zerlege dein Problem in Teilaufgaben und löse zuerst die. Dann erst füge sie zu einem Ganzen zusammen.
public Sendungstyp(double maxHoehe, int maxGewicht, double porto, String bezeichnung)
Dein Sendungstyp sollte zuerst gemacht werden. Deiner hat einen überfüllten Konstruktor.
Bezeichnung und Porto lassen sich aus der Höhe und dem Gewicht berechnen. --> Nicht als Attribute verwenden und nicht in den Konstruktor damit.
So könnte man es machen.
Java:
public class Sendungstyp {
    // Attribute

    public enum TYPE {
        POSTKARTE, STANDARD_BRIEF, KOMPAKT_BRIEF, MAX_BRIEF, GROSS_BRIEF, UNBEKANNT
    };

    private final static int POSTKARTE = 0;
    private final static int STANDARD_BRIEF = 1;
    private final static int KOMPAKT_BRIEF = 2;
    private final static int MAX_BRIEF = 3;
    private final static int GROSS_BRIEF = 4;
    private final static int HOEHE = 0;
    private final static int GEWICHT = 1;
    private final static int PORTO = 2;
    private static double[][] limits = { { 0, 0, 0.45 }, { 0.5, 20, 0.70 }, { 1.0, 50, 0.85 }, { 2.0, 500, 1.45 },
            { 5.0, 1000, 2.40 } };

    private double hoehe;
    private int gewicht;

    private TYPE type = TYPE.UNBEKANNT;

    // Konstruktor
    public Sendungstyp(double hoehe, int gewicht) throws IllegalArgumentException {
        this.hoehe = hoehe;
        this.gewicht = gewicht;
        updateTyp();
    }

    public double getPorto() {
        switch (type) {
        case GROSS_BRIEF:
            return limits[GROSS_BRIEF][PORTO];
        case KOMPAKT_BRIEF:
            return limits[KOMPAKT_BRIEF][PORTO];
        case MAX_BRIEF:
            return limits[MAX_BRIEF][PORTO];
        case POSTKARTE:
            return limits[POSTKARTE][PORTO];
        case STANDARD_BRIEF:
            return limits[STANDARD_BRIEF][PORTO];
        case UNBEKANNT:
        }
        return 0;
    }

    @Override
    public String toString() {
        return type.toString();
    }

    private void updateTyp() {
        if (hoehe < 0)
            throw new IllegalArgumentException("Hoehe muss positiv sein!");
        if (hoehe == 0) {
            type = TYPE.POSTKARTE;
            return;
        }
        if (gewicht <= limits[STANDARD_BRIEF][GEWICHT] && hoehe <= limits[STANDARD_BRIEF][HOEHE]) {
            type = TYPE.STANDARD_BRIEF;
            return;
        }
        if ((gewicht > limits[STANDARD_BRIEF][GEWICHT] && gewicht <= limits[KOMPAKT_BRIEF][GEWICHT]
                && hoehe <= limits[KOMPAKT_BRIEF][HOEHE])
                || (hoehe > limits[STANDARD_BRIEF][HOEHE] && hoehe <= limits[KOMPAKT_BRIEF][HOEHE]
                        && gewicht <= limits[KOMPAKT_BRIEF][GEWICHT])) {
            type = TYPE.KOMPAKT_BRIEF;
            return;
        }
        if ((gewicht > limits[KOMPAKT_BRIEF][GEWICHT] && gewicht <= limits[MAX_BRIEF][GEWICHT]
                && hoehe <= limits[MAX_BRIEF][HOEHE])
                || (hoehe > limits[KOMPAKT_BRIEF][HOEHE] && hoehe <= limits[MAX_BRIEF][HOEHE]
                        && gewicht <= limits[MAX_BRIEF][GEWICHT])) {
            type = TYPE.MAX_BRIEF;
            return;
        }
        if ((gewicht > limits[MAX_BRIEF][GEWICHT] && gewicht <= limits[GROSS_BRIEF][GEWICHT]
                && hoehe <= limits[GROSS_BRIEF][HOEHE])
                || (hoehe > limits[MAX_BRIEF][HOEHE] && hoehe <= limits[GROSS_BRIEF][HOEHE]
                        && gewicht <= limits[GROSS_BRIEF][GEWICHT])) {
            type = TYPE.GROSS_BRIEF;
            return;
        }
        throw new IllegalArgumentException("Werte nicht im erlaubten Bereich!");
    }

}
In Deiner Briefautomat Klasse geht es darunter und darüber du erzeugst unzählige Scanner und hast kein Struktur.
Die main solltest Du auch nicht in diese Klasse packen.
Wenn Du den Münzeinwurf simulieren willst mach später eine Klasse die sich nur mit diesem Problem beschäftigt usw.
Hier ein Ansatz wie Du dich an das Problem herantasten kannst.
Schau Dir den Code an und probiere ihn aus. Vielleicht hilft Dir das weiter. ;)
Java:
import java.text.DecimalFormat;
import java.util.Scanner;

public class BriefmarkenAutomat {
    // Attribute
    private int anzahl;
    private Sendungstyp type = null;
    private static Scanner sc = new Scanner(System.in);
    public static final int ABORT = -1;

    public void abort() {
        System.out.println("Vorgang wurde abgebrochen!");
    }

    private boolean inputAnzahl() {
        while (true) {
            anzahl = (int) inputValue(sc, "Wieviel Stueck (maximal 10) ?");
            if (anzahl == ABORT)
                return false;
            if (anzahl > 10) {
                System.out.println("Es koennen nur 10 Briefmarken gedruckt werden!");
                continue;
            } else
                break;
        }
        return true;
    }

    private boolean inputSendungsType() {
        int gewichtInt = (int) inputValue(sc, "Geben Sie das Gewicht an");
        if (gewichtInt == ABORT)
            return false;
        double hoeheDouble = inputValue(sc, "Geben Sie die Hoehe an");
        if (hoeheDouble == ABORT)
            return false;
        type = new Sendungstyp(hoeheDouble, gewichtInt);
        return true;
    }

    public static double inputValue(Scanner in, String label) {
        double value = 0;
        boolean ok = false;
        do {
            try {
                System.out.print(label + "\t: ");
                String line = in.next().trim();
                if (line.toUpperCase().equals("EXIT"))
                    return ABORT;

                value = Double.parseDouble(line);
                ok = true;
            } catch (NumberFormatException e) {
                System.err.println("Bitte nur Zahlen eingeben");
            }
        } while (!ok);
        return value;
    }

    public void start() {
        System.out.println("*******************************************");
        System.out.println("   Willkommen beim Briefmarkenautomaten.");
        System.out.println("      Zum abrechen 'exit' eingeben.");
        System.out.println("*******************************************");
        if (inputSendungsType()) {
            System.out.println("Gewaehlt: '" + type + "' kostet " + type.getPorto() + " € pro Stueck!");
            if (inputAnzahl()) {
                DecimalFormat df = new DecimalFormat("###,##0.00");
                double betrag = anzahl * type.getPorto();
                System.out.println(anzahl + "\t" + type + "kosten:" + df.format(betrag) + " €");
                // hier weitermachen mit einer Klasse für die Muenzverwaltung
            } else
                abort();
        } else
            abort();
    }
}
Java:
public class start {
    public static void main(String[] args) {
        BriefmarkenAutomat ba = new BriefmarkenAutomat();
        ba.start();
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 6
L Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 6
K Variablen Cannot make a static reference to the non-static field time Java Basics - Anfänger-Themen 6
P Compiler-Fehler Cannot make a static reference to the non-static field process Java Basics - Anfänger-Themen 3
F Mal wieder: Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 9
F Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 3
B Cannot make a static reference...?? Java Basics - Anfänger-Themen 5
B Mal wieder "cannot make a static reference..." Java Basics - Anfänger-Themen 2
R Cannot make a static reference to the non-static method Java Basics - Anfänger-Themen 5
L [Gelöst] Cannot make a static reference ... Java Basics - Anfänger-Themen 12
T Cannot make a static reference to the non-static field Java Basics - Anfänger-Themen 8
frau-u Altes Problem: non-static method cannot be reference Java Basics - Anfänger-Themen 7
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
H Variablen error: non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 4
U Erste Schritte cannot be referenced from a static context Java Basics - Anfänger-Themen 1
W Compiler-Fehler "non-static method cannot be referenced"-Problem Java Basics - Anfänger-Themen 6
M Methoden "Non-static method xy cannot be referenced from a static context" Java Basics - Anfänger-Themen 20
K Objekt erstellen - error: non-static variable this cannot be referenced from a static context Java Basics - Anfänger-Themen 17
H non-static method cannot be referenced from a static context Java Basics - Anfänger-Themen 2
N cannot referenced from static context Java Basics - Anfänger-Themen 5
Q non-static method blub cannot be referenced from a static context Java Basics - Anfänger-Themen 6
N non-static variable con cannot be referenced from a static context Java Basics - Anfänger-Themen 7
G non static method scale(int,int) cannot be referenced from a static context Java Basics - Anfänger-Themen 16
J non static method cannot be referenced from static context Java Basics - Anfänger-Themen 7
P Problem mit Thread - cannot be referenced from a static cont Java Basics - Anfänger-Themen 5
W Cannot find Symbol Java Basics - Anfänger-Themen 5
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
D Cannot find JUnit.framework Java Basics - Anfänger-Themen 1
W Cannot resolve symbol 'HttpServlet' Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
J Scanner cannot be resolved to a type Java Basics - Anfänger-Themen 3
N Fehler "Cannot instantiate the type" Java Basics - Anfänger-Themen 3
jakobfritzz Array- cannot invoke "" because "" is null Java Basics - Anfänger-Themen 4
Flo :3 Variablen Type dismatch: cannot convert from string to int Java Basics - Anfänger-Themen 9
C system cannot be resolved Fehler in Eclipse Java Basics - Anfänger-Themen 18
V ClientProtocolException cannot be resolved Java Basics - Anfänger-Themen 6
A Cannot find symbol mit Konstruktoren Java Basics - Anfänger-Themen 27
A Cannot find symbol bei exceptions Java Basics - Anfänger-Themen 2
J The import org.bukkit cannot be resolved Java Basics - Anfänger-Themen 3
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
L constructor cannot be applied... Java Basics - Anfänger-Themen 22
F Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 5
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
R return: cannot find symbol Java Basics - Anfänger-Themen 2
L Bluej Error: Cannot find Symbol Java Basics - Anfänger-Themen 13
M Iterator cannot refer to a non final... Java Basics - Anfänger-Themen 20
S Cannot find symbol (symbol ist eine Variable) Java Basics - Anfänger-Themen 13
N Cannot find symbol Java Basics - Anfänger-Themen 18
T Error: int cannot be dereferenced Java Basics - Anfänger-Themen 10
J JLabel cannot be resolved Java Basics - Anfänger-Themen 8
P Cannot find symbol, wieso? Java Basics - Anfänger-Themen 5
UnityFriday method getPrevious in class List<ContentType> cannot be applied to given types Java Basics - Anfänger-Themen 29
M Erste Schritte cannot find symbol - Probleme mit Klassen Java Basics - Anfänger-Themen 6
B OOP next cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
B OOP Cannot instantiate the type AuDList<Integer> Java Basics - Anfänger-Themen 18
J Error: cannot find symbol - variable Java Basics - Anfänger-Themen 3
D Java Eclipse cannot be cast to java.awt.event.ItemListener Java Basics - Anfänger-Themen 3
F Erste Schritte parseint: cannot find symbol Java Basics - Anfänger-Themen 6
J Fehlermeldung : cannot invoke char(at) int on the primitive type int --- Anfänger Java Basics - Anfänger-Themen 5
M Erste Schritte [Variable] cannot be resolved to a variable Java Basics - Anfänger-Themen 4
M The Selection cannot be launched... Java Basics - Anfänger-Themen 4
M Vererbung - Cannot Find Symbol constructor... Java Basics - Anfänger-Themen 11
D error: cannot find symbol Java Basics - Anfänger-Themen 3
B Frage zu Beispielprogramm: "error: cannot find symbol" Java Basics - Anfänger-Themen 2
M Methoden Cannot be resolved to a variable Java Basics - Anfänger-Themen 5
BlueMountain Erste Schritte error: cannot find symbol Java Basics - Anfänger-Themen 2
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
L Error: Cannot find symbol Java Basics - Anfänger-Themen 1
W int cannot be dereferenced Java Basics - Anfänger-Themen 5
P Cannot find Symbol Java Basics - Anfänger-Themen 3
K Compiler-Fehler Button cannot be resolved or is not a field Java Basics - Anfänger-Themen 6
F Methoden Cannot refer to a non-final variable.. verständnisproblem. Java Basics - Anfänger-Themen 7
K The Java Runtime Environment cannot be found. Java Basics - Anfänger-Themen 6
F Input/Output IOTools Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 16
L Cannot Find Symbol - Was soll denn das bedeuten?!? Java Basics - Anfänger-Themen 7
P StdIn.readDouble: cannot find symbol Java Basics - Anfänger-Themen 7
B Fehler "Cannot find symbol - variable number1" Java Basics - Anfänger-Themen 13
P Variablen Cannot be resolved to a variable Java Basics - Anfänger-Themen 8
B Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 6
K Date cannot be cast to java.lang.Integer Java Basics - Anfänger-Themen 4
T Cannot convert from Integer to int Java Basics - Anfänger-Themen 12
K Cannot find symbol Java Basics - Anfänger-Themen 3
H cannot find symbol Java Basics - Anfänger-Themen 4
S cannot find symbol, symbol: constructor Java Basics - Anfänger-Themen 2
3 Compiler-Fehler Fehlerbehebung cannot find Symbol Java Basics - Anfänger-Themen 4
R Compiler-Fehler Cannot find symbol (Method printIn) Java Basics - Anfänger-Themen 3
M Meldung "cannot convert flom boolean to boolean[]" Java Basics - Anfänger-Themen 3
B Polymorphie A obj = new B; "cannot find symbol app()" Java Basics - Anfänger-Themen 5
S wieso Fehlermeldung cannot find symbol hier Java Basics - Anfänger-Themen 10
T Cannot refer to an instance field xxx while explicitly invoking a constructor Java Basics - Anfänger-Themen 14
T Cannot find Symbol(String) Java Basics - Anfänger-Themen 9
C cannot convert from int to boolean Java Basics - Anfänger-Themen 3
2 Compiler-Fehler cannot find symbol Java Basics - Anfänger-Themen 13
N Erste Schritte import javax.media.3d....; //Fehlermeldung: cannot be resolved Java Basics - Anfänger-Themen 10
B Erste Schritte cannot find symbol - problem Java Basics - Anfänger-Themen 9
K int cannot be dereferenced Java Basics - Anfänger-Themen 2
H LocationReferenceImpl cannot be resolved to a type Java Basics - Anfänger-Themen 5
D Cannot find symbol variable Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben