Ich habe eine Frage zu Java?

5 Antworten

Ohne den Code jetzt angeschaut zu haben (bitte setz nächstes Mal alles in den code-tag)

Du nutzt die Methode "doubleValue" einer Variable des Typs Double. Diese besitzt die angegebene Methode eben nicht - diese gibt es nur in der jetzigen Klasse.

Entweder setzt du die Methode als statisch und rufst sie "einfach so" auf, oder erzeugst ein Objekt der aktuellen Klasse und rufst es darüber auf

Der Typ double ist ein primitiver Typ. Dieser kann also keine Methoden besitzen. Vor allem nicht deine. 😉

Um deine Methode aufzurufen, müsstest du eine Instanz deiner Klasse erstellen. Über diese kann der Aufruf stattfinden. Angenommen, deine Klasse heißt Fraction:

class Fraction {
  public double doubleValue(int nenner, int zaehler) {
    return nenner / (double)zaehler;
  }
}

class Main {
  public static void main(String[] args) {
    // read numbers ...

    Fraction fraction = new Fraction();
    double zahl1 = fraction.doubleValue(dx, dy);
}

Vergiss auch nicht, deine Methodenblöcke immer zu schließen. In deinem Snippet hast du das bei der Methode doubleValue vergessen.

Für die Division reicht es übrigens, wenn nur eine der beiden Zahlen explizit als double angegeben wird.

  1. Da fehlen (mindestens) 2 geschweifte Klammern.
  2. Da zahl1 vom Typ double ist hat es keinerlei Methoden (und "Extension-Methods" gibts in Java auch nicht)
  3. So wie du doubleValue verwendest müsstest du eine statische Methode draus machen.
  4. Ein Bruch ist Zähler / Nenner, nicht umgekehrt.

Könntest du bitte versuchen, den kompletten Code in den Codeblock zu setzen?

Wie lautet denn die Fehlermeldung?

Woher ich das weiß:Berufserfahrung – Software-Entwickler
zahl1.doubleValue(dx,dy);

Der Punktoperator ist fehl am Platz - Du möchtest nunmal eine Wertzuweisung durchführen.

zahl1 = doubleValue(dx, dy);

xxxcyberxxx  02.11.2019, 21:44

Das wird auch einen Fehler ausspucken, da die Methode nicht statisch ist

unsignedInt  02.11.2019, 23:25
@xxxcyberxxx

Ist mir gar nicht aufgefallen ^^

Kann aber auch leicht passieren, wenn der Fragesteller den Code nicht formatiert (mittlerweile behoben).