Ich bin gerade dabei Java zu lernen und hänge an einem Teil einer Aufgabe. Hier mal meine komplette Aufgabenstellung, alles was in kursiv geschrieben ist habe ich eigentlich schon
- Definiere eine Klasse Auto mit den privaten Parametern Marke, Typ, Zulassungstag, Farbe, Leistung (PS)
- Definiere innerhalb der Klasse Auto für jeden Parameter eine öffentliche Funktion zum Abruf des Parameters (also getBrand(), getType() usw.)
- Instantiiere zwei Objekte der Klasse mit sinnvollen Werten und lass dir von beiden Objekten die Parameter mit Hilfe der zuvor definierten Funktionen ausgeben
- Definiere eine Funktion getKW() die die Leistung des Fahrzeugs in kW zurückgibt (es muss also intern ps in kw umgerechnet werden)
- Definiere eine Klasse Cabrio die von Auto abgeleitet ist und zusätzlich die Funktionen openTop() und closeTop() bietet, mit denen man das Verdeck des Cabrios öffnen/schließen kann. Außerdem muss es möglich sein, mittels getTopStatus() abzufragen, ob das Verdeck gerade offen oder geschlossen ist
- Definiere in der Klasse Auto eine Funktion getAge(), die mir auf Basis des Zulassungsdatums das Alter des Autos in Jahren zurück gibt
- Erweitere die Funktion getAge() um einen optionalen Parameter vom Typ Date. Ist der Parameter gesetzt, liefert die Funktion das Alter des Autos zum übergebenen Zeitpunkt statt zum aktuellen Datum
- Definiere eine Funktion getAgeInDays() die – analog der Funktion getAge() – das Alter in Tagen liefert
Bei dem optionalen Parameter komme ich einfach nicht mehr weiter, keine Ahnung wie ich das anstellen soll, habe schon einiges versucht aber nix hat funktioniert, hoffentlich kann mir jemand auf die Sprünge helfen. Hier noch mein bisheriger Code.
mfg MackaKacka
- Definiere eine Klasse Auto mit den privaten Parametern Marke, Typ, Zulassungstag, Farbe, Leistung (PS)
- Definiere innerhalb der Klasse Auto für jeden Parameter eine öffentliche Funktion zum Abruf des Parameters (also getBrand(), getType() usw.)
- Instantiiere zwei Objekte der Klasse mit sinnvollen Werten und lass dir von beiden Objekten die Parameter mit Hilfe der zuvor definierten Funktionen ausgeben
- Definiere eine Funktion getKW() die die Leistung des Fahrzeugs in kW zurückgibt (es muss also intern ps in kw umgerechnet werden)
- Definiere eine Klasse Cabrio die von Auto abgeleitet ist und zusätzlich die Funktionen openTop() und closeTop() bietet, mit denen man das Verdeck des Cabrios öffnen/schließen kann. Außerdem muss es möglich sein, mittels getTopStatus() abzufragen, ob das Verdeck gerade offen oder geschlossen ist
- Definiere in der Klasse Auto eine Funktion getAge(), die mir auf Basis des Zulassungsdatums das Alter des Autos in Jahren zurück gibt
- Erweitere die Funktion getAge() um einen optionalen Parameter vom Typ Date. Ist der Parameter gesetzt, liefert die Funktion das Alter des Autos zum übergebenen Zeitpunkt statt zum aktuellen Datum
- Definiere eine Funktion getAgeInDays() die – analog der Funktion getAge() – das Alter in Tagen liefert
Bei dem optionalen Parameter komme ich einfach nicht mehr weiter, keine Ahnung wie ich das anstellen soll, habe schon einiges versucht aber nix hat funktioniert, hoffentlich kann mir jemand auf die Sprünge helfen. Hier noch mein bisheriger Code.
Java:
import java.text.*;
import java.util.*;
public class Auto {
private String Marke;
private String Typ;
private String Farbe;
private double Leistung;
private String Zulassungstag;
public String getMarke (){
return this.Marke;
}
public String getTyp (){
return this.Typ;
}
public String getFarbe (){
return this.Farbe;
}
public double getLeistung(){
return this.Leistung;
}
public double getKW (){
double i;
i = Leistung * 0.73549875;
Leistung = i;
Leistung = Math.round(Leistung);
return this.Leistung;
}
public String getTag (){
return this.Zulassungstag;
}
public int getAge() throws ParseException{
SimpleDateFormat dateFormatter = new SimpleDateFormat("dd.MM.yyyy");
Date dateObject = dateFormatter.parse(Zulassungstag);
dateFormatter.format(dateObject);
Calendar today = Calendar.getInstance();
Calendar zulassung = Calendar.getInstance();
zulassung.setTime(dateObject);
int age = today.get(Calendar.YEAR) - zulassung.get(Calendar.YEAR);
return age;
}
public Auto (String Marke,String Typ,String Farbe,double Leistung, String Zulassungstag) {
this.Marke = Marke;
this.Typ = Typ;
this.Farbe = Farbe;
this.Leistung = Leistung;
this.Zulassungstag = Zulassungstag;
}
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
Auto golf = new Auto ("Golf","VW","weiß",75,"19.09.2000");
Auto ferrari = new Auto ("Ferrari","F430","rot",490,"15.6.2012");
Cabrio cabrio = new Cabrio ("Porsche","911 Turbo S","weiß",560,"24.01.2014");
System.out.print("Marke: "+golf.getMarke() + "\t");
System.out.print("Typ: "+golf.getTyp() + "\t");
System.out.print("Farbe: "+golf.getFarbe() + "\t");
System.out.print("Leistung: "+golf.getLeistung() +"PS" + "\t");
System.out.print("Leistung: "+golf.getKW() +"KW" + "\t");
System.out.print("Zulassungstag: "+golf.getTag() + "\t");
System.out.print("Alter: "+golf.getAge() +" Jahre" + "\n");
System.out.print("Marke: "+ferrari.getMarke() + "\t");
System.out.print("Typ: "+ferrari.getTyp() + "\t");
System.out.print("Farbe: "+ferrari.getFarbe() + "\t");
System.out.print("Leistung: "+ferrari.getLeistung() +"PS" + "\t");
System.out.print("Leistung: "+ferrari.getKW() +"KW" + "\t");
System.out.print("Zulassungstag: "+ferrari.getTag() + "\t");
System.out.print("Alter: "+ ferrari.getAge() +" Jahre" + "\n");
System.out.print("Marke: "+cabrio.getMarke() + "\t");
System.out.print("Typ: "+cabrio.getTyp() + "\t");
System.out.print("Farbe: "+cabrio.getFarbe() + "\t");
System.out.print("Leistung: "+cabrio.getLeistung() +"PS" + "\t");
System.out.print("Leistung: "+cabrio.getKW() +"KW" + "\t");
System.out.print("Zulassungstag: "+cabrio.getTag() + "\t");
System.out.print("Alter: "+cabrio.getAge() +" Jahre" + "\n");
cabrio.getTopStatus();
cabrio.openTop();
cabrio.getTopStatus();
}
}
class Cabrio extends Auto {
public Cabrio(String Marke, String Typ, String Farbe, int Leistung, String Zulassungstag) {
super(Marke, Typ, Farbe, Leistung, Zulassungstag);
}
private boolean topclosed = true;
public void openTop() {
topclosed = false;
System.out.println("Das Verdeck wird geöffnet");
}
public void closeTop() {
topclosed = true;
System.out.println("Das Verdeck wird geschlossen");
}
public boolean getTopStatus() {
if(topclosed) {
System.out.println("Das Verdeck ist gerade geschlossen");
} else {
System.out.println("Das Verdeck ist gerade geöffnet");
}
return topclosed;
}
}
mfg MackaKacka
Zuletzt bearbeitet: