Hilfe bei Übungsaufgabe

Hi, ich benötige gerade einfach mal eure Hilfe, weil ich selber keinen Ansatz finde.

Es soll die Klasse Auto erstellt werden. Das Auto besitzt eine aktuelle und eine Höchstgeschwindigkeit, sowie eine Richtung (Nord, Ost usw.). Das Auto startet mit der Geschwindigkeit 50. Höchstgeschwindigkeit wird im Konstruktor gesetzt. Wenn der Wert unter 50 ist, soll 50 die Höchstgeschwindigkeit sein. Wird Gas gegeben ( a.gas(); ), erhöht sich die Geschwindigkeit, wird aber nicht größer als die Höchstgeschwindigkeit. Das Auto kann seine Richtung nach links ( a.links(); ) oder rechts ( a.rechts(); )ändern und sein Status ( a.status(); ) kann abgefragt werden (Seine Geschwindigkeit und in welche Richtung er fährt (Nord, Ost usw.)). Das soll programmiert werden.

Ich hoffe ihr könnt mir helfen.
 
Fang doch schon mal an und stelle dann konkrete Fragen, wenn es hapert. Im Prinzip musst du ja nur Lesen. Eine Klasse "Auto" das solltest du hinkriegen. Aktuelle und Höchstgeschwindigkeit, das sind zwei Instanzvariablen, usw.
 
public class Auto {

public Auto(int i) {
}

public static void main(String[] args) {

Auto a = new Auto(50);
System.out.println(a.status());
a.gas();
a.rechts();
a.rechts();
for (int i=1; i<=3; i++) {
a.gas();
a.links();
}
System.out.println(a.status());
}
}

Wir haben eine Hilfestellung bekommen und ich weiß es sind wahrscheinlich noch viele Fehler drin, aber hier komme ich nicht mehr weiter
 
Bitte verwende die Code-Tags, rechts vom Smiley -> Code -> Java!
Java:
public class Auto {

    public Auto(int i) {
        // Hier kommt: Höchstgeschwindigkeit wird im Konstruktor gesetzt. Wenn der Wert unter 50 ist, soll 50 die Höchstgeschwindigkeit sein.
    }

    public static void main(String[] args) {

        Auto a = new Auto(50);
        System.out.println(a.status());
        a.gas();
        a.rechts();
        a.rechts();
        for (int i=1; i<=3; i++) {
            a.gas();
            a.links();
        }
       
        System.out.println(a.status());
    }
}
 
Ihr werden doch bestimmt Klassen-Variablen/Felder/wie auch immer ihr die nennt gehabt haben? Beispiel:

Java:
public class Haus {
  private int hoehe;

  public Haus(int hoehe) {
    this.hoehe = hoehe;
  }
}

Das ganze musst du jetzt nur für deine Aufgabe adaptieren:
a) Was für Felder habt ihr?
b) Wie werden die gesetzt bei erzeugen des Objektes im Konstruktor?
 
Das klingt bei euch so einfach 🙂. Wir hatten Monatelang keine Schule. Es ist zwar nur ne Übung, aber ich will trotzdem Wissen wie man das programmieren könnte.
 
Es geht nicht um die Schwierigkeit. Es bringt nur nix, wenn wir dir hier eine fertige Lösung hinsetzen, die du dann auch nicht verstehst sondern einfach abgibst. Schau dir an, was ich da im Beispiel mit dem Haus gemacht habe - und übertrage das auf deine Auto-Aufgabe.
 
Das klingt bei euch so einfach 🙂. Wir hatten Monatelang keine Schule. Es ist zwar nur ne Übung, aber ich will trotzdem Wissen wie man das programmieren könnte.
Du wirst hier in der Regel keine fertige Lösung serviert bekommen. Du hast ja nichts davon, wenn du einfach abschreibst.

Also: Durchstarten, nimm den vorgegeben Code und das Beispiel von @LimDul dazu und setze das um. Wir werden gerne unterstützen, wenn Fragen auftauchen.
 
Je eher Du Anfängst, desto schneller wirst Du sie haben.

Edit: Du kannst ja auch Fragen etwas spezieller stellen, dann kann man genau dort helfen.

@LimDul hat ja bereits gezeigt, wie das mit den Instanzvariablen geht. Und in Deinem @temi s Konstruktor steht ja als Text schon da was Du machen sollst.
 
Zuletzt bearbeitet:
@Javanfänger20 Das kann man doch Schritt für Schritt umsetzen. Wie Du eine Klasse Auto schreibst, hast Du ja schon:
Java:
public class Auto {
}
Die nächsten drei Aufgaben:
1. deklariere Instanzvariablen für die Höchstgeschwindigkeit, die aktuelle Geschwindigkeit und die Richtung.
2. schreibe einen Konstruktor, der als Parameter die Höchstgeschwindigkeit erwartet und die in 1 deklarierte Instanzvariable auf den übergebenen Wert setzt.
3. Erweitere den Konstruktor, so dass die aktuelle Geschwindigkeit auf 50 gesetzt wird. Die Richtung setzt Du mal auf "Nord".
 
Wenn Du Probleme mit einem Thema hast, z.B. Instanzvariablen, dann schau Dir dazu doch einfach ein paar Seiten an. Google liefert da bestimmt einige interessante Seiten. Das Online Buch "Java ist auch eine Insel" kann da bestimmt auch hilfreich sein.

Jetzt wäre z.B. eine Suche nach "Instanzvariable Java Einführung" möglich. Da bekomme ich viele interessante Ergebnisse ...
 
Hier mal eine kleine Hilfe:
Java:
public class Auto {

    // Hier fehlen drei Instanzvariablen:
    // Das Auto besitzt eine aktuelle und
    // eine Höchstgeschwindigkeit,
    // sowie eine Richtung

    public Auto(int i) {
        // Höchstgeschwindigkeit wird im Konstruktor gesetzt.
        // Wenn der Wert unter 50 ist, soll 50 die Höchstgeschwindigkeit sein.
        // Das Auto startet mit der Geschwindigkeit 50.
    }

    // Hier fehlen die Methoden, die in main() aufgerufen werden (siehe unten und Aufgabe)

    // Mal ein Beispiel, das nicht in der Aufgabe verlangt wird:
    public void hupen() {
        System.out.println("Trööt!");
    }
 
    // Die main()-Methode lassen wir wie sie ist...
    public static void main(String[] args) {

        Auto a = new Auto(50);

        // Nachfolgend werden vier Methoden von Auto aufgerufen, die du noch implementieren musst
        System.out.println(a.status()); // diese

        a.gas(); // diese
        a.rechts(); // diese
        a.rechts();
        for (int i=1; i<=3; i++) {
            a.gas();
            a.links();
        }
   
        System.out.println(a.status()); // und diese
    }
}

Jetzt bist du dran!
 
Zuletzt bearbeitet:
Java:
public class Auto {
    
    //Hier musst du die Variablen der Klasse definieren.
    //also z.B.
    //deine müssten lauten int hoechstgeschwindigkeit, int geschwindigkeit usw.
    String farbe;
    int gewicht;       
 

    public Auto(int hoechstgeschwindigkeit) {
        //Das ist dein Standard-Konstruktor mit der hoechstgeschwindigkeit.
        //hoechstgeschwindigkeit wird beim Erstellen eines Objektes dem Konstruktor
        //übergeben.
    }

    //Jetzt brauchst du die Methoden, die dein Objekt können soll.
    //bei dir gasgeben, rechtabbiegen, linksabbiegen etc.
    //Beispielmethode gasgeben(int erhoeheGeschwindigkeit) erhöht die Geschwindigkeit
    //um den Wert erhoeheGeschwindigkeit
    //void bedeutet dass es keine Rückgabe gibt und die Methode einfach ausgeführt wird
    // wenn du etwas zurückgeben möchtest musst du ein return mit dem entsprechenden
    //Datentyp haben
    
    public void gasgeben(int erhoeheGeschwindigkeit)
    {   
        
        geschwindigkeit=geschwindigkeit+erhoeheGeschwindigkeit;
    }
    public int gasgeben(int erhoeheGeschwindigkeit)
    {   
        
        geschwindigkeit=geschwindigkeit+erhoeheGeschwindigkeit;
        return geschwindigkeit;
    }
 

Zurück
Oben