Abend Leute,
es sind Semesterferien und wir haben eine Bonusaufgabe bekommen ,die nicht für die Zulassung notwendig ist.Um nicht aus der Übung zu kommen dachte ich mir ,dass ich sie mal machen könnte.Nun die Aufgabe ist relativ banal in deren Verlauf man folgendes Implementierung soll:
Definieren Sie ein Interface “Einheit”,welches – wie alle Interfaces dieser Aufgabe – keine Methoden enthält. Definieren Sie nun die Interfaces
Meter und Sekunden,welche Einheit erweitern. Definieren Sie außerdem die Interfaces Multiplikation und Division ,welche jeweils zwei generische Typ-Parameter bekommen, die Einheit erweitern. Multiplikationen und Divisionen von Einheiten sind ebenfalls Einheiten. Nun können Siedie in dieser Aufgabe benötigten Einheiten als Java Typen darstellen.
Einheit Bedeutung Java Typ
m Strecke Meter
s Dauer Sekunden
m/s Geschwindigkeit Division<Meter,Sekunde>
m/s2 Beschleunigung Division<Meter,Multiplikation<Sekunde,Sekunde>>
Da es keine Klassen gibt, die diese Interfaces implementieren (und somit auch keine
entsprechenden Objekte), nennt man solche Typen auch Phantom Types.
Folgendes habe ich bisher implementier:
interface Einheit{
}
interface Meter extends Einheit{
public String einheit = "m";
public String bedeutung = "Strecke";
}
interface Sekunden extends Einheit{
public String einheit = "s";
public String bedeutung = "Zeit";
}
interface Multiplikation<A,B> extends Einheit{
}
interface Division<A,B> extends Einheit{
}
Was ich mich nun frage sind drei Dinge:
Der Satz “Multiplikationen und Divisionen von Einheiten sind ebenfalls Einheiten” . Wie ist das zu verstehen bzw zu implementieren ?
Was denkt ihr ist mit Java Typen gemeint ? Etwas sowas wie Primitives wie String …?
Wie soll ich diese Tabelle mit Einheit,Bedeutung und JavaTyp implementieren?
Ich habe mich schon dran versuchte siehe Interface Meter,da hab ich schon was reingepackt.
Hat einer ne Idee?