Fortlaufende Aktualisierung bei eigener Klasse

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich lerne Java nach folgender Seite, die auch Aufgaben bereitstellt:

http://www.gailer-net.de/tutorials/java/Notes/chap31/progExercises31.html

Ich habe mich jetzt mal an der zweiten Aufgabe versucht und komme auch zu einer funktionierenden Lösung, allerdings bin ich mir nicht sicher, ob ich den Wünschen der Aufgabenstellung gerecht geworden bin:

Code:
import java.io.*;

class Auto2
{
  int anfang, tacho;
  double fuellung;


  Auto2(int startMeilen)
  {
    anfang=startMeilen;
  }

  void auftanken (int aktTacho, double gallonen)
  {
    tacho=aktTacho;
    fuellung=gallonen;
  }

  double berechneMPG()
  {
    return (tacho-anfang)/fuellung;
  }

  void speichern()
  {
    anfang=tacho;
  }

  boolean benzinschwein()
  {
    if(berechneMPG() <15)
      return true;
    else
      return false;
  }

  boolean sparauto()
  {
    if(berechneMPG() >30)
      return true;
    else
      return false;
  }
}


class Kapitel312
{
  public static void main (String [] args) throws IOException
  {
    BufferedReader stdin = new BufferedReader ( new InputStreamReader (System.in) );
    String inData;
    boolean weiter=true;
    int startMeilen, aktTacho;
    double gallonen;

    System.out.println("Neues Auto - Tachometer-Anfangsstand:");
    inData=stdin.readLine();
    startMeilen=Integer.parseInt(inData);

    Auto2 auto = new Auto2(startMeilen);

    while(weiter)
    {
      System.out.println("+++ Besuch der Tankstelle +++");

      System.out.println("Aktuellen Tachometerstand eingeben:");
      inData=stdin.readLine();
      aktTacho=Integer.parseInt(inData);

      System.out.println("Anzahl der Gallonen fuer die Tankfuellung:");
      inData=stdin.readLine();
      gallonen=Double.parseDouble(inData);

      auto.auftanken(aktTacho, gallonen);

      System.out.print("Meilen pro Gallone: "+auto.berechneMPG()+" Autotyp: ");
      if(auto.benzinschwein())
        System.out.println("Benzinschwein!");
      if(auto.sparauto())
        System.out.println("Sparauto!");

      auto.speichern();

      System.out.println("Programm beenden <j>a <n>ein?");
      inData=stdin.readLine();
      if(inData.equals("n"))
        weiter=true;
      else
        weiter=false;
    }
  }
}

Ich bin mir nicht so sicher, ob die Aufgabenstellung mein auto.speichern() am Ende jeder While-Schleife als in Ordnung ansieht, oder gibt es da eine elegantere und aufgabenstellungsmäßig gerechtere Lösung?


Vielen Dank schon einmal für eure Hilfe.



PS: Solltet ihr die Zeit haben, könntet ihr vielleicht auch gleichzeitig auf die Lösung der ersten Aufgabe schauen, die schon implementiert ist in der zweiten Aufgabe und damit in meinem Quellcode, denn irgendwie habe ich als Anfänger schon teilweise schwierigkeiten überhaupt die Aufgabenstellung zu verstehen.
So fand ich z. B. in Aufgabe 1 die Anweisung: "Eine if-else-Anweisung wählt den korrekten booleschen Rückgabewert aus. ", als eher unnötig an, da meiner ansicht nach:

Code:
boolean benzinschwein()
{
  return berechneMPG() <15;
}

eigentlich doch ausgereicht hätte, um true oder false für die Ausgabe zu erhalten.
 
S

SlaterB

Gast
zu 2.

das ist wohl korrekt,
in speichern() könnte man noch überlegen, die anderen Variablen zu aktualisieren, z.B. fuellung auf 0 zu setzen,
aber falls da jemand was berechnet, ohne neue Werte einzugeben, ist eh mindesten die Strecke 0, da kommt nix gescheites raus

die Variablen sind auch besser zu bennen, alterTacho + neuerTacho z.B.


dass 'anfang', 'startMeilen' und 'tacho/ aktTacho' alle das gleiche meinen, ist unnötig schwer zu erkennen

--------

zu 1.

da verwendest du eine schlaue korrekte Abkürzung,
in Anfängeraufgaben ist aber
if (berechneMPG() <15) {
return true;
} else {
return false;
}
nicht ganz ungewohnt, sollte man ruhig auch mal gesehen haben, um dann deine Lösung als besser zu schätzen zu wissen
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
R Fortlaufende Zahl Java Basics - Anfänger-Themen 3
M fortlaufende Nummer Java Basics - Anfänger-Themen 7
it_is_all For-Schleife - Dateinamen fortlaufende Nummer Java Basics - Anfänger-Themen 2
M Druck mit fortlaufende Nummer Java Basics - Anfänger-Themen 6
M Fortlaufende Konsole Java Basics - Anfänger-Themen 3
J fortlaufende Objekte durch Variable auswählen; Datenbank Java Basics - Anfänger-Themen 4
M Fortlaufende Nummer Java Basics - Anfänger-Themen 4
A Aktualisierung eines Buttons Java Basics - Anfänger-Themen 18
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
C Array Aktualisierung wird nicht im Tooltip angezeigt Java Basics - Anfänger-Themen 2
M Gui Aktualisierung Java Basics - Anfänger-Themen 2
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
Private Void Auto-Aktualisierung der Zeitanzeige Java Basics - Anfänger-Themen 10
H Aktualisierung des JProgressBar in Abhängigkeit eines Threads Java Basics - Anfänger-Themen 5
T Canvas aktualisierung mit repaint Java Basics - Anfänger-Themen 5
G Aktualisierung von JTable Java Basics - Anfänger-Themen 4
I Problem mit Inhalt-Aktualisierung Java Basics - Anfänger-Themen 18
M Problem mit Aktualisierung von GridBagLayout Java Basics - Anfänger-Themen 2
H String verschlüsseln - eigener Algorithmus Java Basics - Anfänger-Themen 104
D importieren eigener Klassen Java Basics - Anfänger-Themen 12
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
B Eigener Validierungseditor? Java Basics - Anfänger-Themen 3
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
Bluedaishi Jar mit eigener JRE Java Basics - Anfänger-Themen 7
I equals (Override) mit eigener Exception (keine Runtime-Exception) Java Basics - Anfänger-Themen 9
J Threads Problem mit eigener ArrayList Java Basics - Anfänger-Themen 2
E MCLauncher eigener Client workt nicht? Java Basics - Anfänger-Themen 4
A Input/Output Datenströme schließen in eigener Methode Java Basics - Anfänger-Themen 5
J Interface ActionListener in eigener Klasse Java Basics - Anfänger-Themen 27
F Get/Post als eigener Thread mit Rückgabe Java Basics - Anfänger-Themen 5
M Messandwendung nach Zeit und eigener Eingabe Java Basics - Anfänger-Themen 4
N Schlüsselworte Bubble Sort nach eigener Ordnung Java Basics - Anfänger-Themen 8
E Compare-Funktion bei eigener Klasse Java Basics - Anfänger-Themen 4
Q ArrayList mit eigener Klasse in Java sotieren Java Basics - Anfänger-Themen 2
N BierSpiel von "Kopf bis Fuss" eigener Code...kleine Problemstellung. Java Basics - Anfänger-Themen 11
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
L Eigener FilterReader Java Basics - Anfänger-Themen 12
E Mein eigener Listener (Hilfe gesucht) Java Basics - Anfänger-Themen 2
M import von eigener Klasse Java Basics - Anfänger-Themen 12
P ArrayList aus eigener Klasse "überschreibt" Werte nicht Java Basics - Anfänger-Themen 4
M xPos und yPos eigener Klassen geben lassen Java Basics - Anfänger-Themen 3
H Exit Befehl in eigener Konsole Java Basics - Anfänger-Themen 9
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
S [JUnit] eigener Testsuite Runner + Ausgabe Java Basics - Anfänger-Themen 6
G Eigener Autoboxing Datentyp Java Basics - Anfänger-Themen 3
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
B Datentypen Probleme mit eigenem Get() bei eigener HashMap Java Basics - Anfänger-Themen 6
B OOP Eigener Event-Listener erstellen Java Basics - Anfänger-Themen 4
G Datentypen "Liste" eigener Objekte durchsuchen Java Basics - Anfänger-Themen 6
S mit eigener Klasse JTextField ändern Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
I Datentypen Eigener DatenTyp Java Basics - Anfänger-Themen 2
B Ordner öffnen (eigener Dateibrowser) Java Basics - Anfänger-Themen 8
B Eigener Webserver + Eigener Webbrowser Java Basics - Anfänger-Themen 7
I eigener "Abstandshalter" vs. LayoutManager Java Basics - Anfänger-Themen 6
X eigener Mergesort auf generischen Typen mit Comparator Java Basics - Anfänger-Themen 6
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
D Container mit eigener Klasse Java Basics - Anfänger-Themen 5
B Verwenden eigener Object-Klassen Java Basics - Anfänger-Themen 9
H Eigener Button Java Basics - Anfänger-Themen 2
M Eigener Iterator für LinkedList Java Basics - Anfänger-Themen 20
I Java eigener MSN Messenger schreiben Java Basics - Anfänger-Themen 3
R Event in eigener Klasse implementieren ? Java Basics - Anfänger-Themen 8
G IOException Problem in eigener Klasse Java Basics - Anfänger-Themen 8
B Import Problem mit eigener Klasse. Java Basics - Anfänger-Themen 8
G Eigener Parser Java Basics - Anfänger-Themen 4
T Problem mit eigener Klasse Java Basics - Anfänger-Themen 7
A eigener Explorer via Java? Java Basics - Anfänger-Themen 9
D Thread und Process Kommunikation bei eigener Console Java Basics - Anfänger-Themen 2
T Öffnen externer Datei als eigener Prozess Java Basics - Anfänger-Themen 8
G Datei aus eigener JAR-Datei verwende Java Basics - Anfänger-Themen 2
N Porblem mit dem Importieren eigener Pakete Java Basics - Anfänger-Themen 4
T ActionListener in eigener Klasse Java Basics - Anfänger-Themen 10
T ActionListener in eigener Klasse Java Basics - Anfänger-Themen 5
L ActionListener in eigener Klasse Java Basics - Anfänger-Themen 3
T Erstellen eigener packages Java Basics - Anfänger-Themen 6
G JMenuBar in eigener Klasse erstellen Java Basics - Anfänger-Themen 3
A Eigener Datentyp? Java Basics - Anfänger-Themen 39
F Eigener IP-Paket-Header Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben