Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Halloa,
ich bin wirklich blutiger Anfänger, aber naja folgendes:
Ich möchte einen kleinen Autoverleih erstellen und habe 2 klassen, einmal Autoverleih und Auto.
Mit der Klasse Autoverleih will ich das Anfangs und Enddatum sowie die gefahren km des Autos speichern.
Die Daten werden also in die Klasse Auto geschrieben und die objecte in einer Arraylist gespeichert, soweit sollte das glaub ich auch schonmal funktionieren.
Nur wie sieht jetzt eigentlich die Klasse Auto aus? und vor allem wie kann ich die einzelnen Daten der Autos wieder auslesen.
Ich poste mal meinen quelltext
Code:
public class autoVerleih
{
private ArrayList<Auto> autos;
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(int auto)
{
System.out.println("Bla: " + autos.get(Auto.getBeginDat));
}
}
Und hier die Klasse Auto
Code:
public class Auto
{
public int beginDat;
public int endDat;
public int km;
public Auto(int gefahreneKm, int beginDatum, int endDatum)
{
this.beginDat = beginDatum;
this.endDat = endDatum;
this.km = gefahreneKm;
}
public int getGefahreneKm()
{
return km;
}
public int getBeginDat()
{
return beginDat;
}
public int getEndDat()
{
return endDat;
}
}
Stehen "int beginDat, int endDat, int km" aus Autoverleih eigentlich in Verbindung mit "public int beginDat; public int endDat; public int km;" ?
Also zur letzten Frage: Ja.
Du übergibst sie dem Konstruktor von Auto als Parameter und setzt dann z.B. public int beginDat auf den selben Wert wie der in autoverleih.
ach verdammt ich war nicht eingeloggt, wollte noch was verändern
Code:
public void getData(int autoNr)
{
System.out.println("Bla: " + autos.get(Auto.getBeginDat));
}
das ist natürlich totaler quatsch an coder, ich würde halt gerne sagen autoNr "1" --> bitte BeginDat ausgeben
...
Danke schonmal für die Antwort, ändere ich die Paramater z.B. von km in kilometer gibts aber keinen syntaxfehler?! Aber den müsste es doch geben weil die variabel in der klasse Auto ja gar nicht vorhanden ist.
Weil: Wenn du die Dinger (auch Variablen genannt) private machst kann man von außen nicht mehr auf diese zugreifen, was sehr sinnvoll ist ^^ Falls du dann immernoch nen Zugriff brauchst kannste das mit getter/setter lösen. Also z.B. getBeginDat / setBeginDat
Dürfte aber auch in einen der ersten Kapitel in der Javainsel stehen..... einfach mal stöbern ;-)
aaachso,
mir war klar das ich von aussen dann nichtmehr auf sie zugreifen kann, aber ich dachte das würde das zugreifen über autoverleih auch verhindern!
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 :/
Code:
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();
}
}
}
Code:
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;
}
}
Code:
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?