Compiler-Fehler Methode wird nicht bzw. als Fehler erkannt

fuerteb

Neues Mitglied
Hi,
ich habe relativ neu mit Java angefangen und finde nicht heraus, warum die Methode "runden" nicht erkannt wird.
Hier der Code:

public class Main {

public static void main(String[] args) {

String[] produkt = new String[4];
int[] menge = new int[4];
double[] preis = new double[4];

produkt[0] = "Apfel";
preis[0] = 1.10;
menge[0] = 3;

double gesamtpreis;

public double runden(double value) {
double d = Math.pow(10, 2);
return Math.round(value * d) / d;
}

for(int i = 0; i < 4; i++) {
System.out.println(produkt + " " + menge + "x " + preis);
gesamtpreis = preis * menge;
gesamtpreis = runden(gesamtpreis);
System.out.println(" " + gesamtpreis);
}
 

Blender3D

Top Contributor
Java:
public class Main {

    public static void main(String[] args) {
        String[] produkt = new String[4];
        int[] menge = new int[4];
        double[] preis = new double[4];

        produkt[0] = "Apfel";
        preis[0] = 1.10;
        menge[0] = 3;
        double gesamtpreis;
        for(int i = 0; i < 4; i++) {
            System.out.println(produkt + " " + menge + "x " + preis);
            gesamtpreis = preis * menge;
            gesamtpreis = runden(gesamtpreis);
            System.out.println(" " + gesamtpreis);
        }       
    }

    public static double runden(double value) {
        double d = Math.pow(10, 2);
        return Math.round(value * d) / d;
    }
}
 

httpdigest

Top Contributor
Als du den Beitrag geschrieben hast, gab es im Texteditor ein kleines Icon </> links in der Iconzeile. Das ist dafür da, Code einzufügen.
Alternativ kannst du auch [code=java]....[/code] schreiben. Du kannst deinen Beitrag noch diesbezüglich bearbeiten.

warum die Methode "runden" nicht erkannt wird.
Auch wenn das in vielen Sprachen geht, aber in Java kann man Methoden nicht direkt innerhalb anderer Methoden deklarieren.
Du deklarierst eine Methode "runden" direkt innerhalb der main() Methode. Das geht so nicht. Deklariere runden() als statische Methode _neben_ der main() Methode.
 

Neumi5694

Top Contributor
Java bietet hier eine Möglichkeit, und zwar z.B. über Supplier, Consumer, Funktionen usw (intern machen die (meisten?) anderen Sprachen das eh auch nicht anders).
Hier bietet sich z.B. eine Funktion an
Java:
public void main(String...) {
    //Lambda Ausdruck, der wird vom Compiler ersetzt durch new Function<>() {public Double apply(Double value) {...}}
    Function<Double,Double> runden = value -> {
        double d = Math.pow(10, 2);
        return Math.round(value * d) / d;     
    }
    gesamtpreis = runden.apply(gesamtpreis);
}
Für gewöhnlich ist es aber besser (lesbarer), die Methoden extern zu deklarieren wie oben gezeigt
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
Java bietet hier eine Möglichkeit, und zwar z.B. über Supplier, Consumer, Funktionen usw (intern machen die (meisten?) anderen Sprachen das eh auch nicht anders).
Das ist etwas anderes, als eine Funktion/Methode innerhalb des lexikalischen Scopes der äusseren Funktion/Methode zu deklarieren. In JavaScript ist das anders. In Go ist das anders. Keine andere Sprache, die mir einfällt, macht das so wie Java bzw. die JVM.
In Java bzw. in der JVM ist das eine Implementierung eines Interfaces und ist nur syntaktischer Zucker für quasi eine innere anonyme Klasse (auch, wenn die Runtime dann davon eine Klasse zur Laufzeit statt zur Compilezeit generiert).
Und nein, die Lambda wird nicht vom Compiler durch den von dir im Inline-Kommentar genannten Code ersetzt. Die Ersetzung sieht tatsächlich ganz anders aus (Generierung einer Methode und einer Dynamic Invoke Bootstrap Methode, etc.)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
N Selection Algorithmus: Methode wird nicht erkannt (BlueJ) Java Basics - Anfänger-Themen 3
T Methoden Methode wird nicht auf Konsole ausgeführt Java Basics - Anfänger-Themen 3
Bluebird209 Array wird nicht an Methode übergeben Java Basics - Anfänger-Themen 7
E Methoden 2D Array wird in der Methode nicht geändert/gespeichert Java Basics - Anfänger-Themen 5
D Methoden Methode wird nicht aufgerufen Java Basics - Anfänger-Themen 4
G Methoden Verstehe nicht was in der Methode gemacht wird? Java Basics - Anfänger-Themen 5
S Methoden Return Anweisung beendet Methode nicht, stattdessen wird diese zweimal durchlaufen Java Basics - Anfänger-Themen 3
G Methoden BlueJ SuM Methode wird nicht gefunden Java Basics - Anfänger-Themen 9
E Warum wird Methode nicht durch return-Befehl beendet? Java Basics - Anfänger-Themen 3
R Nach return() der aufgerufenen Methode wird aufrufende Methode nicht weiter ausgeführt Java Basics - Anfänger-Themen 14
L Vererbung - Methode wird nicht erkannt Java Basics - Anfänger-Themen 5
I Methode wird nicht gefunden Java Basics - Anfänger-Themen 8
G Applet - Methode start() wird nicht aufgerufen Java Basics - Anfänger-Themen 2
D finalize()-Methode wird nicht aufgerufen Java Basics - Anfänger-Themen 3
F Zweite Graphics-Methode wird nicht ausgeführt Java Basics - Anfänger-Themen 4
J Spielfigur wird trotz erfolgreich aufgerufener Methode nicht Java Basics - Anfänger-Themen 22
D Methode wird nicht gefunden Java Basics - Anfänger-Themen 14
D main-Methode wird nicht gefunden Java Basics - Anfänger-Themen 2
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
X compareTo Methode wird ignoriert Java Basics - Anfänger-Themen 7
L Falsche Methode wird geladen Java Basics - Anfänger-Themen 2
N Methoden warum wird diese Methode aufgerufen Java Basics - Anfänger-Themen 9
K Methoden Methode starten wenn JFrame geöffnet wird Java Basics - Anfänger-Themen 2
N Methoden Wohin mit einer Methode die in unterschiedlichen Klassen verwendet wird? Java Basics - Anfänger-Themen 5
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
T Java Methode wird unerwünscht doppelt aufgerufen?! Java Basics - Anfänger-Themen 4
J Warum wird Array durch Methode ohne Rückgabewert verändert? Java Basics - Anfänger-Themen 5
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
M Möglich? Methode aufrufen deren Bezeichner zur Laufzeit durch einen überg. String festgelegt wird Java Basics - Anfänger-Themen 3
S Methode pausieren bis Button gedrückt wird Java Basics - Anfänger-Themen 5
F String wird richtig in konsole geschrieben aber falsch an Methode übergeben Java Basics - Anfänger-Themen 8
T Vererbung Wann wird die Methode paint aufgerufen? Java Basics - Anfänger-Themen 4
S Methoden Methode wird doppelt aufgerufen ... Java Basics - Anfänger-Themen 5
W Methoden Wie wird eine Methode hier aufgerufen? Java Basics - Anfänger-Themen 5
B Methode warten lassen bis Button gedrückt wird Java Basics - Anfänger-Themen 16
O Drucker: print methode wird 2 mal aufgerufen nachfrage Java Basics - Anfänger-Themen 4
K methode wird nur einmal korrekt durchlaufen Java Basics - Anfänger-Themen 4
A Events werfen/feuern wenn bestimtm methode ausgeführt wird Java Basics - Anfänger-Themen 3
A log4j - Warum wird Methode getHeader 2x ausgeführt? Java Basics - Anfänger-Themen 2
W Bindung bzw warum wird diese Methode aufgerufen? Java Basics - Anfänger-Themen 5
G Methode wird übersprungen? Java Basics - Anfänger-Themen 9
W Die Methode print() wird 2 mal für jede Seite aufgerufen Java Basics - Anfänger-Themen 9
M Warum wird diese Methode ausgeführt? Java Basics - Anfänger-Themen 2
B Überprüfung ob Methode von geerbter Klasse aufgerufen wird Java Basics - Anfänger-Themen 2
P Methode zum Überprüfen ob Datei verwendet wird? Java Basics - Anfänger-Themen 3
G private methode wird aus anderer klasse aufgerufen? Java Basics - Anfänger-Themen 3
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
M generate Methode für Streams Java Basics - Anfänger-Themen 6
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
T Linked List set-Methode Java Basics - Anfänger-Themen 2
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12

Ähnliche Java Themen

Neue Themen


Oben