Klassen Programm für einen Auto Boardcomputer

Hallo Community,

Wir haben in der Schule gestern mit dem Thema Klassen in Java angefangen. Wir haben an der Tafel ein Beispielprogramm geschrieben, habe es in den Compiler eingegeben doch dieser zeigt mir Fehler an.
Hier die erste Klasse:
Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Erzeuger {

  public static void main(String[] args) {
  
    Auto mercedesE320 = new Auto();
    
    mercedesE320.tankinhalt = 90;
    mecredesE320.durchschnittsverbrauch = 9.5;
    mecredesE320.boardcomputer();
    mecredesE320.fahren();
    
    Auto tiger = new Auto();
    tiger.tankinhalt = 1000.0
    tiger.durchschnittsverbrauch = 80.0;
  }
}

und hier die zweite Klasse:
Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Auto {

  public static void main(String[] args) {
    double gefahrenekm;
    double tankinhalt;

      public void fahren() {
        System.out.println("gefahrenen km:");
        gefahrenekm = Tastur.leseKommazahl;
        tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
      }                                                                    //Ende der Methode fahren
      
      public void boardcomputer() {
        System.out.println("Tankinhalt: "+tankinhalt);
      }                                                                    //Ende der Methode boardcomputer
  }
}

Hier die Fehlermeldung:

Compiliere J:\Java_Dokumente\Auto1\Erzeuger.java mit Java-Compiler
.\Auto.java:15:7: illegal start of expression
public void fahren() {
^
.\Auto.java:15:14: illegal start of expression
public void fahren() {
^
.\Auto.java:15:25: ';' expected
public void fahren() {
^
.\Auto.java:21:7: illegal start of expression
public void boardcomputer() {
^
.\Auto.java:21:14: illegal start of expression
public void boardcomputer() {
^
.\Auto.java:21:32: ';' expected
public void boardcomputer() {
^
Erzeuger.java:15:17: cannot find symbol
symbol : variable tankinhalt
location: class Auto
mercedesE320.tankinhalt = 90;
^
Erzeuger.java:16:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.durchschnittsverbrauch = 9.5;
^
Erzeuger.java:17:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.boardcomputer();
^
Erzeuger.java:18:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.fahren();
^
Erzeuger.java:21:10: cannot find symbol
symbol : variable tankinhalt
location: class Auto
tiger.tankinhalt = 1000.0;
^
Erzeuger.java:22:10: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tiger.durchschnittsverbrauch = 80.0;
^
.\Auto.java:17:23: cannot find symbol
symbol : variable Tastur
location: class Auto
gefahrenekm = Tastur.leseKommazahl;
^
.\Auto.java:18:33: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
14 errors

Beide Klassen haben die selbe Fehlermeldung

Benutze en wahrscheinlich veralteten Java Editor gestartet von einem USB Stick und nutze ein uraltes JDK installiert auf dem selben USB Stick.

Bitte um schnelle Hilfe
Danke im Vorraus 🙂🙂😉
 
Zuletzt bearbeitet:
Du hast beim Abschreiben wohl die Klammerung verhauen. So wie die (geschweiften) Klammern im Moment gesetzt sind, versuchst Du, innerhalb der main-Methode die beiden Methoden fahren und boardcomputer zu deklarieren. Das ist keine gültige Syntax und der Compiler meckert. Markiere die Zeilen 15 bis 23, mache Strg-X, bewege den Cursor hinter die geschweifte Klammer in Zeile 24, mache Strg-V. Dann ist die Syntax gültig. Danach noch Zeilenumbrüche und Einrückungen korrigieren, dann ist der Code auch schön.
[edit]Die Lösung hier ist zwar (teilweise) richtig. Beachte aber auch meinen nachfolgenden Post[/edit]
 
Zuletzt bearbeitet von einem Moderator:
Nochmal ich, wenn ich mir Deinen Code so anschaue, ist die main-Methode in der Klasse Auto wohl der Fehler beim Abschreiben. Lösche einfach die Zeilen 11 und 24!
 
Danke für die schnelle Hilfe:toll::toll:

Aber Leider funktioniert es immer noch nicht. Hier der jetzige Code:
Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Auto {

  public static void main(String[] args) {
    double gefahrenekm;
    double tankinhalt;
  }
  
  public void fahren() {
    System.out.println("gefahrenen km:");
    gefahrenekm = Tastur.leseKommazahl;
    tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
  }                                                                    //Ende der Methode fahren

  public void boardcomputer() {
    System.out.println("Tankinhalt: "+tankinhalt);
  }                                                                    //Ende der Methode boardcomputer
}

Die Fehlermeldung:
Compiliere J:\Java_Dokumente\Auto1\Erzeuger.java mit Java-Compiler
Erzeuger.java:15:17: cannot find symbol
symbol : variable tankinhalt
location: class Auto
mercedesE320.tankinhalt = 90;
^
Erzeuger.java:16:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.durchschnittsverbrauch = 9.5;
^
Erzeuger.java:17:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.boardcomputer();
^
Erzeuger.java:18:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.fahren();
^
Erzeuger.java:21:10: cannot find symbol
symbol : variable tankinhalt
location: class Auto
tiger.tankinhalt = 1000.0;
^
Erzeuger.java:22:10: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tiger.durchschnittsverbrauch = 80.0;
^
.\Auto.java:18:5: cannot find symbol
symbol : variable gefahrenekm
location: class Auto
gefahrenekm = Tastur.leseKommazahl;
^
.\Auto.java:18:19: cannot find symbol
symbol : variable Tastur
location: class Auto
gefahrenekm = Tastur.leseKommazahl;
^
.\Auto.java:19:5: cannot find symbol
symbol : variable tankinhalt
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
.\Auto.java:19:18: cannot find symbol
symbol : variable tankinhalt
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
.\Auto.java:19:29: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
.\Auto.java:19:56: cannot find symbol
symbol : variable gefahrenekm
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
.\Auto.java:23:39: cannot find symbol
symbol : variable tankinhalt
location: class Auto
System.out.println("Tankinhalt: "+tankinhalt);
^
13 errors

Bitte um schnelle Hilfe🙂
 
Beachte pls meinen Post oben nicht, den hab ich geschrieben bevor ich deinen neuen Post gesehen habe. Jetzt sieht der Code so aus:

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Auto {


    double gefahrenekm;
    double tankinhalt;

      public void fahren() {
        System.out.println("gefahrenen km:");
        gefahrenekm = Tastur.leseKommazahl;
        tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
      }                                                                    //Ende der Methode fahren

      public void boardcomputer() {
        System.out.println("Tankinhalt: "+tankinhalt);
      }                                                                    //Ende der Methode boardcomputer
}

Habe jetzt nur noch 2 Fehler
Compiliere J:\Java_Dokumente\Auto1\Auto.java mit Java-Compiler
Auto.java:17:23: cannot find symbol
symbol : variable Tastur
location: class Auto
gefahrenekm = Tastur.leseKommazahl;
^
Auto.java:18:33: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
2 errors

Aber es funtioniert immernoch nicht
 
Beachte pls meinen Post oben nicht, den hab ich geschrieben bevor ich deinen neuen Post gesehen habe. Jetzt sieht der Code so aus:

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Auto {


    double gefahrenekm;
    double tankinhalt;

      public void fahren() {
        System.out.println("gefahrenen km:");
        gefahrenekm = Tastur.leseKommazahl;
        tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
      }                                                                    //Ende der Methode fahren

      public void boardcomputer() {
        System.out.println("Tankinhalt: "+tankinhalt);
      }                                                                    //Ende der Methode boardcomputer
}

Habe jetzt nur noch 2 Fehler
Compiliere J:\Java_Dokumente\Auto1\Auto.java mit Java-Compiler
Auto.java:17:23: cannot find symbol
symbol : variable Tastur
location: class Auto
gefahrenekm = Tastur.leseKommazahl;
^
Auto.java:18:33: cannot find symbol
symbol : variable durchschnittsverbrauch
location: class Auto
tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
^
2 errors

Aber es funtioniert immernoch nicht

Du verwendest zwei Variablen die es nicht gibt.
Einmal:
Tastur und einmal durchschnisttverbrauch.

DA du sie im Anfangspost verwendest, solltest du diese eventuell auch in deine Klasse bringen 🙂

Einfach unter tankinhalt.
 
Zuletzt bearbeitet:
Habe Tastatur verbesswert und durchschnittsverbrauch gibt es in der Klasse Erzeuger

Habe jetzt noch mehr Fehler und bin total verwirrt.???:L???:L Ich denke ich frage am einfach am Montag meinen Leherer.

Aber trotzde danke für eure Hilfe :toll::toll:
 
Also da hast du aber was ganz falsch verstanden.
Du kannst keiner Variable, die nicht existiert einen Wert zuweisen. Du musst die Variable schon deklarieren. Was bedeutet, in der Klasse, die es betrifft muss die Variable sein!

In deinem Fall, musst du den durchschnittsverbrauch auch in deiner Klasse Auto definieren.
Wie das geht, weißt du ja schon.
 
So danke vjames,

hattest recht 😀, aber jetzt hab ich immernoch Fehler

Compiliere J:\Java_Dokumente\Auto1\Erzeuger.java mit Java-Compiler
Erzeuger.java:16:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.durchschnittsverbrauch = 9.5;
^
Erzeuger.java:17:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.boardcomputer();
^
Erzeuger.java:18:5: cannot find symbol
symbol : variable mecredesE320
location: class Erzeuger
mecredesE320.fahren();
^
3 errors
 
ich würd mir 5 Minuten zeit nehmen und mal ein Grundlagen Kapitel lesen...
cannot find symbol: variable mecredesE320... naja was wird das heißen?
 
Poste mal bitte den Code.

Zeig mir mal deine aktuelle Klasse Erzeuger, er meckert nämlich an, dass er die Variable mecredesE320 nicht kennt. Hast du dich da verschrieben?
 
Dann schick mir ma pls en Link zu nem Grundlagen Kapitel (dass verständlich ist).
Würde mir auch sehr helfen dass ich des Thema eh kaum verstehe. Ja habe nach Tuts gesucht aber die meisten verstehe ich net
 
Hatte en Schreibfehler

Mein jetziger Code:

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Auto {

  private double gefahrenekm;
  public double tankinhalt;
  public double durchschnittsverbrauch;

  public void fahren() {
    System.out.println("gefahrenen km:");
    gefahrenekm = Tastatur.leseKommazahl();
    tankinhalt = tankinhalt-durchschnittsverbrauch/100*gefahrenekm;
  }                                                                    //Ende der Methode fahren

  public void boardcomputer() {
    System.out.println("Tankinhalt: "+tankinhalt);
  }                                                                    //Ende der Methode boardcomputer
}

Java:
/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 9/22/2012
  * @author
  */

public class Erzeuger {

  public static void main(String[] args) {
  
    Auto mercedesE320 = new Auto();
    
    mercedesE320.tankinhalt = 90;
    mercedesE320.durchschnittsverbrauch = 9.5;
    mercedesE320.boardcomputer();
    mercedesE320.fahren();
    
    Auto tiger = new Auto();
    tiger.tankinhalt = 1000.0;
    tiger.durchschnittsverbrauch = 80.0;
  }
}

Funtzt aber immernoch nicht
 
Ok, aber woher kommt Tastatur?? Java kann nicht zaubern.
Wenn du mit einer Tastatureingabe arbeiten möchtest, nimm einen Scanner.

Java:
Scanner Tastatur = new Scanner(System.in);

//Dann machst du:

gefahrenekm = Tastatur.nextDouble();
[JAPI]http://docs.oracle.com/javase/1.5.0/docs/api/java/util/Scanner.html[/JAPI]

Damit liest du einen Double-Wert vom User ein.
 
Des Tastatur haben wir von unseren Lehrer gesagt bekommen. Des funtioniert auch, weis aber net ob ich die Tastaturklasse hier veröffentlichen darf, da sie von meinem Lehrer ist. Aber des mit Tastatur.leseKommazahl funktioniert.

Muss jetzt aber ma weg. Heute Abend komme ich wieder.
 
Außerdem würde ich folgendes machen:

1.) Die Variablen auf private setzen.
2.) Öffentliche Schnittstellen via Methoden bereitstellen
und
3.) diese dann aufrufen.

Mit private int bsp = 32;

sorgst du dafür, dass die Variable bsp für einen Zugriff von außen geschützt ist.
Siehe auch:
Galileo Computing :: Java ist auch eine Insel - 5 Eigene Klassen schreiben

Die setMethode -> Für das Setzen des Variablen Wertes sieht dann so aus.

public void setBsp(int bsp)
{
this.bsp = bsp;
}

Die Get-Methode, wenn du außerhalb der Klasse den Wert benötigst:

public int getBsp()
{
return this.bsp;
}
 

Neue Themen


Zurück
Oben