theschaaf: Object Daten aus Arraylist auslesen

Halloa,
ich möchte gerne einen kleinen Autoverleih machen, mit der Klasse autoverleih erstelle ich objekte vom auto und speicher sie in einer ArrayList.

Ich möchte jetzt in einer dritten Klasse die Anzahl der Tage ausrechnen, um mit dieser Anzahl dann in der Klasse Auto den Preis zu berechnen, ich allerdings keinen Schnall wie ich das irgendwie umsätzen kann :/

-------------------------------------------------------

public class autoVerleih
{
    private ArrayList<Auto> autos;
    private Datum datum;

public autoVerleih()
    {
        autos = new ArrayList<Auto>();
    }

public void neueAusleihe(int beginDat, int endDat, int km)
    {
        autos.add(new Auto(beginDat, endDat, km));
    }

public void getData()
     {
         for(int i = 0; i < autos.size(); i++)
         {
         autos.get(i);
         System.out.println("Beginn Datum: " + autos.get(i).getBeginDat());
         System.out.println("End Datum   : " + autos.get(i).getEndDat());
         System.out.println("Kilometer   : " + autos.get(i).getGefahreneKm());
         System.out.println("Kosten      : " + autos.get(i).getKosten());
         System.out.println();
         }
     }
     }

-------------------------------------------------------
public class Auto
{
    private int beginDat;
    private int endDat;
    private int km;

public Auto(int beginDatum, int endDatum, int gefahreneKm)
        {
            this.beginDat    = beginDatum;
            this.endDat      = endDatum;
            this.km          = gefahreneKm;
        }

public int getGefahreneKm()
    {
        return km;
    }

public int getBeginDat()
    {
        return beginDat;
    }

public int getEndDat()
    {
        return endDat;
    }

public int getKosten()
    {
        int Betrag = km * 10;//*tage
        return Betrag;
    }
}

-------------------------------------------------------

public class Datum
{
    private int beginDat;
    private int endDat;

public Datum(int beginDatum, int endDatum)
        {
            this.beginDat    = beginDatum;
            this.endDat      = endDatum;
        }

public int getTage()
        {
            int tage= endDat - beginDat;
            return tage;
        }
}

Wie kriege ich es hin in der Klasse Datum mit "endDat und beginDat" aus "Auto" zu rechnen und den Wert dann in Auto wieder weiter zu gebrauchen. Das getTage kein korrektes Ergebnis bringen kann ist mir klar und erstmal nebensächlich.
Kann mir da jemand nen Denkanstos geben?

  1. Hej,

    auch wenn ich dein Klassenmodell etwas sehr umständlich und die Bezeichner schlecht gewählt finde (das eine ist z.B. kein Datum sondern eine Mietperiode o.ä.), zu deinem konkreten Problem soviel:

      
    public class autoVerleih {  
      
      private ArrayList<Auto> autos;  
      private Datum datum; 
    

    Für was welches deiner Autos war die Variable datum gedacht?

    Wie kriege ich es hin in der Klasse Datum mit "endDat und beginDat" aus "Auto" zu rechnen und den Wert dann in Auto wieder weiter zu gebrauchen. Das getTage kein korrektes Ergebnis bringen kann ist mir klar und erstmal nebensächlich.

      
    public class Auto {  
      
      private Datum datum;  
      private int km;  
      
      public Auto( Datum d, int gefahreneKm) {  
        this.datum = d;  
        this.km    = gefahreneKm;  
      }  
    
    

    Wäre ein solcher Konstruktor nicht sinnvoller?

      
    public class Datum  
    
    

    Wozu überhaupt? Und wieso weiß nur das Auto selber wann es reserviert / vermietet ist? Wäre es nicht sinnvoller wenn deine Autovermietung eine art Kalender hätte, in der für jeden Tag die reservierten Autos eingetragen werden?

    Beste Grüße
    Biesterfeld

    --
    Art.1: Et es wie et es
    Art.2: Et kütt wie et kütt
    Art.3: Et hätt noch immer jot jejange
    Das Kölsche Grundgesetz
    1. Hi, erstmal danke für deine Antwort zur späten Stunde!

      Die Aufgabenstellung ist vorgegeben, und das Datum unter <Auto> ist auch überflüssig so wie einiges an code mehr, das hätte ich vorher nochmal aufräumen sollen.
      Ich bin grad auffem Sprung ist Bett, werde mich heut Vormittag damit weiterbeschäftigen.
      grüße, jens