Im Rahmen einer Softwareentwicklung für die einheitliche Verwaltung von Flugzeugen wurde
die Klasse Flugzeug entwickelt. Die Klasse ist auszugsweise angegeben:
public class Flugzeug { private String hersteller; // Herstellername private int maxSpeed; // Max. Geschwindigkeit private String serienNr; // Seriennummer private int anzahlFluegel = 1; // Anzahl Flügelpaare public Flugzeug(String hersteller, int maxSpeed, int anzahlFluegel) { this.hersteller = hersteller; this.maxSpeed = maxSpeed; this.anzahlFluegel = anzahlFluegel; } public String getSerienNr(){ return serienNr; } protected void setSerienNr(String serienNr){ this.serienNr = serienNr; } public int getMaxSpeed(){ return maxSpeed; } public boolean getLooping() { return false; } // weitere Methoden }
Schreiben Sie ausgehend von dieser Klasse eine Klasse Verkehrsflugzeug sowie eine Klasse
Doppeldecker. Diese sollen folgende Spezifikation erfüllen:
Klasse Verkehrsflugzeug
getLooping immer false zurückgibt, auch in eventuellen Unterklassen von `Verkehrsflugzeug.Verkehrsflugzeug-Objekt erzeugt
werden kann. Dazu müssen der Hersteller (String), die maximale Geschwindigkeit (int),
die Seriennummer (String) und die Anzahl Passagiere (`int) angegeben werden.Verkehrsflugzeug hat die Methoden getAnzahlPassagiere und
setAnzahlPassagiere zum Abfragen und Setzen der Anzahl der Passagiere.Klasse Doppeldecker
LOOPINGSPEED. Die Methode
getLooping soll true zurückgeben, falls die zulässige max. Geschwindigkeit
(maxSpeed) grösser LOOPINGSPEED ist.Doppeldecker hat eine Variable offenesCockpit vom Typ boolean.
Sie gibt an, ob der Doppeldecker ein offenes oder geschlossenes Cockpit hat. Nachdem
offenesCockpit gesetzt worden ist, darf sie nicht mehr verändert werden.isOffenesCockpit, die den Wert von offenesCockpit
zurückgibt.Doppeldecker-Objekt initialisiert
werden kann.String), maximale Geschwindigkeit (int),
die Seriennummer (String) und einen boolean offenesCockpit, der angibt, ob der Doppeldecker
ein offenes oder geschlossenes Cockpit hatString), maximale Geschwindigkeit (int),
die Seriennummer (int). In diesem Fall ist der Wert für offenesCockpit immer true.Doppeldecker soll nicht erweiterbar sein.Hinweise:
final nutzen, z.B. public final void methode() { /* ... */ }.final kennzeichnen, z.B. public final class Klasse { /* ... */ }.(Diese Aufgabe stammt von https://home.zhaw.ch/~rea/ine2_fs10/Musteraufgaben_OOP.pdf)
Ein Palindrom ist ein Wort oder ein Satz, das vorwärts und rückwärts gleich gelesen werden kann. Beispiele sind Rentner, Reliefpfeiler oder Nie Knabe, nie, grub Nero neben Orenburg eine Bank ein1.
Schreiben Sie eine Klasse, welche in der Lage ist zu erkennen, ob ein einzelnes Wort ein Palindrom ist. Dabei sollen Klein- und Großschreibung keine Rolle spielen.
Ihr Algorithmus muss dabei rekursiv implementiert sein!
Optionale Erweiterung: Idealerweise könnten Sie auch Nicht-Buchstaben überspringen und so die Prüfung ganzer Sätze ermöglichen.
Hinweise:
toUpperCase() und toLowerCase(), welche eine Zeichenkette komplett in
Groß- oder Kleinbuchstaben umwandelt.char c ein Buchstabe ist: boolean Character.isLetter(c)