# Übung Klassen, Objekte, Methoden



## bongzilla (21. Apr 2010)

Hallo,
haben von unserem lehrer eine übung bekommen die wir bei gelegenheit machen sollten und zwar geht es dabei um folgendes:

erstellen sie eine klasse mit dem namen auto.
Diese Klasse soll folgende Methoden zur verfügung stellen
-tanken (int anzahlLiter)
es nur so viel getankt werden, wie es der aktuelle Tankinhalt zulässt. Dazu ist auch eine Variable für den maximalen Tankinhalt festzulegen.

- fahre(int km)
Es kann nur soweit gefahren werden , wie es der aktuelle Tankinhalt zulässt.

-int laufleistung()
gibt den aktuellen kilometerstand zurück
- int alter
gibt das alter des autos zurück

int maximalFahrbareStrecke()
gibt die strecke zurück die aufgrund des aktuelllen tankinhaltes maximal zurück gelegt werden kann. Dazu muss eine Variable fpr den Durchschnittsverbrauch des Autos initialisiert werden.


Überlegen sie sich welche Attribute die klasse haben muss.

Die klassendefinition und der aufruf sind in zwei datein zu trennen, d.h. es gibt eine datei auto.java und eine start.java  
in der klasse start soll eine objekt des typs auto erzeugt werden.
alle benötigten attribute des objekts sind auf einen frei gewählten startwert zu setzten anschließend werden die o.g. methoden der klasse auto genutzt.


und hier das was ich bisher hinbekommen habe ....



```
public class auto {
  public int tankfuelle; // WIe viel noch drinne ist
  public int fahre;      // Wie weit man noch fahren kann
  public int kmstand;    // Wie weit man gefahren ist
  public int alterAuto;  // Alter des Autos
  public int maxstrecke; // Die zurückgelegte Strecke
  public int maxtankinhalt; // wie viel max in den tank passt
  public int verbrauch      // wie viel verbraucht wird pro 100 km

  public void setTankfuelle(int tankfuelle){
     if (tankfuelle<=0)
       this.tankfuelle += maxtankinhalt;
    else
        this.tankfuelle = 0;
        System.out.println("Auftanken!");
  }
     public void setFahre(int fahre) {
    if (fahre < this.verbrauch * this.tankinhalt) {
      this.kilometerstand += km;
      this.verbrauch -= this.verbrauch / 100 * km;
    else
      System.out.println("Da musst Du vorher aber nochmal tanken...");
    }
    
      public void setkmstand(int kmstand){
        kmstand = fahre;  }

      public void setAlterAuto(int alterAuto){
    if (alterAuto >=0)
      this.alterAuto = alterAuto ;
    else
    this.alterAuto=0;           }
      public void showLiter(){
        System.out.println("liter"+tankfuelle+fahre);
      }
      
      public void maxstrecke(){
        maxstrecke = fahre-tankfuelle;
      }

}

// seite 1
```


und....



```
public class start {

  public static void main(String[] args) {
    auto r1;
    r1 = new auto();
    r1.setTankfuelle(36);
    r1.setFahre(2);
    r1.setkmstand(20);
    r1.setAlterAuto(100);
    r1.showMaxstrecke();
    r1.showalterAuto();
    r1.showLiter();
    r1.showfahre();
  }
}
```



aber nun weiss ihc nicht mehr weiter... bin etwas überfordert..


----------



## Tomate_Salat (21. Apr 2010)

setTankfuelle erlaubt mehr zu füllen als reinpasst, setkmstand macht keinen Sinn, setAlterAuto setzt einfach mal das alter auf 0

zudem werden Klassen am Anfang groß geschrieben=> also sollten deine Klassen [c]S[/c]tart und [c]A[/c]uto heisen. 
Du solltest dein ganze Konzept nochmal überdenken :-/

Weiter möchte ich nicht ins Detail eingehen, da dass ja eine Übung sein soll ;-). Solltest du dennoch Fragen haben, wird man dir da sicher helfen. 

MFG

Tomate_Salat


----------



## Nicer (21. Mai 2010)

Du könntest in der Klasse Auto auch einen Konstruktor machen in dem du die ganzen Params wie tankinhalt usw mitgibst. Dafür brauchst du aber Getter und Setter methoden.


```
public class Auto(int tankfuelle,int kmstand, int fahre, ...)
{
this.setTankfuelle(tankfuelle);
this.setKmstand(kmstand);
...

}
```

Dann würde das erzeugen des Objekts wie folgt aussehen :


```
Auto auto = new Auto(tankfuelle,kmstand,fahre,...);
```

Getter ( Beispiel Tankfuelle ) :


```
public int getTankfuelle()
{
return tankfuelle;
}
```

Setter ( Beispiel Tankfuelle ) :


```
public void setTankfuelle(int tankfuelle)
{
tankfuelle = tankfuelle;
}
```


----------



## Tomate_Salat (21. Mai 2010)

bezweifel das der Thread nach zieml. genau einem Monat noch aktuell ist (zumal es sich um eine Schul/Studium/...-Aufgabe handelt und diese wohl längst kontrolliert wurde).


----------



## Nicer (21. Mai 2010)

Oh shit , das habbich garnich gesehn dass der so alt is *schäm*^^

@DEVS : Ihr könntet ja vllt beiträge die seit länger als 3 wochen keine Aktivität mehr hatten in braun oder so makieren


----------

