Fehlermeldungen bei Methoden

  • Themenstarter Themenstarter Gast
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo,
ich bekomme bei meinen 2 Methoden folgende Fehlermeldungen:
bei der Methode "berechnen": <identifier> expected
Allerdings kann ich damit nichts anfangen! Aufgerufen habe ich die Methode in einer buttonActionPerformed Methode mit:
berechnen(cS, cHE, cSquadrat);

Bei der Methode "uebergeben": Bei allen 3 listbox.add... Zeilen: `)`ecpected
Methode wird ebenfalls in der ActionPerformed Methode aufgerufen: uebergeben(spW);

Also die Listbox befindet sich in einer 2. Klasse "Ausgabe" und dort sollen eben der spW Wert und der Text der uebergen-Methode angezeigt werden.

Code:
   // End of variables declaration                   
public double cS=0.0,
              cHE=0.0,
              spW=0.0,
              cSquadrat=0.0;
public int exponent = 2;

        
//Methode "berechnen" für Ergebnis der spezifischen Wachstumsrate spW
        public double berechnen(double cS,cHE,cSquadrat)
        {
          spW = (3*cS*cHE)/((1+cS+(cSquadrat/2))*(3+cHE));
          return spW;
        };

//Methode "uebergeben" für Wertübergabe von spW an Listbox und Botschaft ob Kerraktur nötig
        public void uebergeben(double spW)
        {
            if (spW<3.0)
            listbox.add(0, "Die berechnete spezifische Wachstumsrate beträgt "+spW "/h. Die malximale Wachstumsrate beträgt aber 3.0/h. Bitte gehen Sie zurück und verringern Sie Ihre Werte.");
            else
            if (spW>3.0)
            listbox.add(0, "Die berechnete spezifische Wachstumsrate beträgt "+spW "/h. Die malximale Wachstumsrate beträgt aber 3.0/h. Bitte gehen Sie zurück und erhöhen Sie Ihre Werte.");
            else
            if (spW==3.0)
            listbox.add(0, "Die berechnete spezifische Wachstumsrate beträgt "+spW "/h. Sie haben die optimalen Werte für die Nährbodenzusammensetzung!");
        }

Bin für jede Hilfe dankbar!
 
dir fehlt ein +, dort, wo du den string zusammenbastelst...

Code:
listbox.add(0, "Die berechnete spezifische Wachstumsrate beträgt "+spW + "/h. Die malximale Wachstumsrate beträgt aber 3.0/h. Bitte gehen Sie zurück und verringern Sie Ihre Werte.");
 
Code:
public double berechnen(double cS,cHE,cSquadrat)

Alle Parameter einer Methode müssen spezifiziert werden.
Code:
public double berechnen(double cS, double cHE, double cSquadrat)
 
Hey super danke!:applaus:

Is schon spät... :wink:

Aber hab noch eine Frage:
die Listbox habe ich in der Ausgabeklasse deklariert aber in der Eingabeklasse in der uebergeben-Methode geschrieben was er sagen soll.
Wenn ich es so lasse sagt er das er die Variable listbox nicht finden kann. Wenn ich die Methode in die Ausgabeklasse schreibe findet er sie natürlich, aber gibt es auch eine Möglichkeit die Listbox-Variable public zu machen dass er sie auch in der Eingabeklasse findet?

Und in meiner Speicher-Methode meldet er auch wieder einen Fehler den ich nicht finde:
In der Zeile: speicherung.writeDouble(double spW, double cS, double cHE);
meldet er `.class`expected und `)`expected

Code:
//Methode "speichern"
    //Z         T           N()
    public      void        speichern() throws IOException
    {
        // T        N       =new T/K()
    try {
    DataOutputStream speicherung =new DataOutputStream (new FileOutputStream("c:\\rechnung.txt"));
    speicherung.writeDouble(double spW, double cS, double cHE);
    speicherung.close();
        }
    catch (Exception e) {}
    }
 
Also ich verstehe das jetzt so dass er statt der "writeDouble" Methode irgendeine Klasse erwartet?!
Aber warum?
Wäre dann auch mein letzter Fehler glaub ich! Danach müsste es funzen... 🙂
 
Wenn du eine Methode aufrufst musst du auch die entsprechenden Paramter übergeben..
Code:
speicherung.writeDouble(double spW, double cS, double cHE);
Wie zB.
Code:
speicherung.writeDouble(3.0, 2.0, 1.0);
:autsch:
 
Aber das sind Variablen ohne feste Werte! cS und cHE werden in Textfeldern eingegeben und durch eine andere Methode wird daraus spW errechnet!
Wie muss ich das denn schreiben das er immer den aktuellen Wert der Variable übergibt?
 
Dir fehlt's an den Grundlagen.

Wenn du eine Methode deklarierst, dann sieht das so aus:
Code:
public void writeDouble(double spW, double cS, double cHE) {
  // implementierung
}

Wenn du sie aufrufst, dann so:
Code:
speicherung.writeDouble(spW, cS, cHE);
 
Ok, das hätte ich jetzt glaub ich hingekriegt
Code:
public void speichern(double spW) throws IOException
      {
 try{
     DataOutputStream speicherung = new DataOutputStream (new FileOutputStream ("c:\\rechnung.txt"));
     speicherung.writeDouble(spW);
    }
          catch (Exception e)
          {              
          }
     }

Diese Methode "speichern" ist in meiner Ausgabeklasse deklariert und wird dort über einen Button so aufgerufen:
Code:
try
      {
        speichern(spW);  
      }
  catch (Exception e)
  {
      
  }

Allerdings meldet er mir dort beim Aufruf dass er die Variable spW in der Ausgabeklasse nicht finden kann. Diese wurde auch in der Eingabeklasse deklariert, aber ich habe sie "public" gemacht. Müsste er sie dann nicht auch in einer anderen Klasse finden?
Oder ist es irgendwie möglich das er die Variable in einer anderen Klasse durch eine Methode speichern kann?
 
Gewöhne dir das:
Code:
  catch (Exception e)
  {
      
  }
mal bitte schnellstens ab. Du beraubst dich aller Möglichkeiten, den tatsächlichen Fehler zu finden.

Fange stattdessen die Exceptions, die tatsächlich auftreten können und gib zumindest eine Fehlermeldung aus.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben