riethmunk: Methoden Problem

Hallo Leute,

ich soll eine Methode
int faehrtNach(String Ziel, int Entfernung)
herstellen

Die Methode soll mir die Meldung
"Auto fährt von Berlin nach Hamburg 250 km" ausgeben
und den neuen Standort(Ziel) sowie den neuen Kilometerstand
(kmStand+Entfernung) speichern.
Rückgabewert ist kmStand.

Da ich Frischling bin scheitert es bei mir am return des Strings
und ich kriege immer:
C:\test.java:53: incompatible types
found   : java.lang.String
required: int
 return Ziel;

  1. Hallo "riethmunk"(?),

    Da ich Frischling bin scheitert es bei mir am return des Strings
    und ich kriege immer:

    Wie wäre es, wenn Du mal den Quellcode veröffentlichst. Ich habe zwar eine Vermutung, ...

    C:\test.java:53: incompatible types
    found   : java.lang.String
    required: int
    return Ziel;

    ... daß es laut dieser Fehlermeldung des Compilers daran liegt, daß Du die verschiedenen Variablentypen string und int nicht konform vermischst, kann aber eben nichts genaueres sagen, ehe ich nicht weiß, wie Du dieses schaffst.

    • Tim
    1. Hi Tim,

      also so siehts aus:

      public class ErweitertesAuto{
      // erweiterte Attribute
       public String besitzer;
       public String autotyp;
       public String farbe;
       public String standort;
       public int erstzulassung;
       public int leistung;
       public int kmStand;
       public long fahrgestellnummer;

      // erweiteter Konstruktor
      public ErweitertesAuto(String besitzer, String autotyp, String farbe, String standort,
            int erstzulassung, int leistung, int kmStand, long fahrgestellnummer){

      this.besitzer = besitzer;
          this.autotyp = autotyp;
          this.farbe = farbe;
          this.erstzulassung = erstzulassung;
          this.leistung = leistung;
          this.kmStand = kmStand;
          this.standort = standort;
          this.fahrgestellnummer = fahrgestellnummer;
          }

      // Methoden
      /** Berechnung des Alters des Autos
      *  @param ohne
      *  @return int alter
      */
      public int alter(){
       return 2002 - erstzulassung;
       }

      public String Ziel;
       public int Entfernung;

      /** Ausgabe
      *  @param String Ziel und int Entfernung
      *  @return void
      */
      public int faehrtNach(String Ziel, int Entfernung) {

      return Entfernung + kmStand;
       return Ziel;

      }

      /** Ausgabe aller Werte der Attribute
      *  @param ohne
      *  @return void
      */
      public void alleDatenAusgeben(){
         System.out.print ("Das Auto ist ein " + autotyp);
         System.out.println ("");
         System.out.print ("Die Farbe des Autos ist "+ farbe );
         System.out.println ("");
         System.out.print ("Der Besitzer ist: " + besitzer);
         System.out.println ("");
         System.out.print ("Das Auto befindet sich in " + standort);
         System.out.println ("");
         System.out.print ("und wurde im Jahr " + erstzulassung + " zugelassen");
         System.out.println ("");
         System.out.print ("Der Motor bringt " + leistung + " kW an Leistung und hat");
         System.out.println ("");
         System.out.print ("die eingestanzte Fahrgestellnummer: " + fahrgestellnummer);
         System.out.println ("");
         System.out.println ("");

      }

      }

      1. Hallo "riethmunk",

        (Gibt es wirklich jemanden, der so heißt? *g*)

        public int faehrtNach(String Ziel, int Entfernung) {
        return Entfernung + kmStand;
        return Ziel;
        }

        Du hast folgende Anforderungen beschrieben...

        Die Methode soll mir die Meldung
        "Auto fährt von Berlin nach Hamburg 250 km" ausgeben
        und den neuen Standort(Ziel) sowie den neuen Kilometerstand
        (kmStand+Entfernung) speichern.
        Rückgabewert ist kmStand.

        ... die wir jetzt mal umsetzen:

        public int faehrtNach(String Ziel, int Entfernung) {

        Daraus sehen wir, daß wir eine Variable vom Typ String und eine Variable vom Typ Integer übergeben bekommmen und eine Integervariable zurückgeben.

        1. Wir geben die Meldung aus:

        system.out.println("Auto fährt von " + standort + " nach " + Ziel + " " + Entfernung + " km");

        Den Ausgeben bezieht sich hier bestimmt nur auf die Textkonsole und nicht auf das Zurückgeben. Man kann nur einen Wert zurückgeben und das ist der kmStand, nicht wahr?

        1. Wir speichern den neuen Standort:

        standort = Ziel;

        1. Wir speichern den neuen kmStand:

        kmStand += Entfernung;   // Abkürzende Schreibweise für kmStand = kmStand + Entfernung

        1. Rückgabewert ist der neue kmStand:

        return kmStand;

        Zusammengefaßt:

        public int faehrtNach(String Ziel, int Entfernung) {
        system.out.println("Auto fährt von " + standort + " nach " + Ziel + " " + Entfernung + " km");
        standort = Ziel;
        kmStand += Entfernung;
        return kmStand;
        }

        (Und ich fühl mich jetzt schuldig, Dir das alles vorgeschrieben zu haben, anstelle ein paar Tips zu geben - da hättest Du bestimmt mehr gelernt...)

        • Tim
        1. Hallo nochmal und schon mal vielen Dank,

          *riethmunk gibt es natürlich nicht wirklich ;-)

          nun gibt es aber folgendes Problem:

          C:\vfh\prog1\einsend\2\ErweitertesAuto.java:79: package system does not exist
           system.out.println("Auto fährt von " + standort + " nach " + Ziel + " " + Entfernung + " km");
                        ^
          1 error

          Was soll das denn nun wieder heißen?

          1. Hallo,

            C:\vfh\prog1\einsend\2\ErweitertesAuto.java:79: package system does not exist
            system.out.println("Auto fährt von " + standort + " nach " + Ziel + " " + Entfernung + " km");

            Schlechtschreibfehler. Dürfte wahrscheinlich an meiner Kleinschreibweise von System.out.println liegen.

            • Tim
            1. Ja, habe ich auch gemerkt (wenigstens mal etwas).
              Also nochmal vielen Dank.
              Es läuft jetzt.

              Gruß André