Java - OOP 2

From Coders.Bay Wiki
Jump to navigation Jump to search

Tag 1

Objektorientierung

Aufgabe: Stack

Implementiere einen IntStack! Ein Stack ist ein Stapel, der immer die Dinge zuerst abarbeitet, die er zuletzt bekommen hat nach dem Last in first out Prinzip. Die Klasse Stack sollte folgende Methoden haben:

  • void push(int newElement)
    • fügt ein neues Element oben in den Stack ein
  • int size()
    • gibt die Anzahl der Elemente im Stack zurück
  • int pop()
    • gibt das letzte Elemente des Stacks zurück und entfernt dieses vom Stack
  • int peek()
    • gibt das letzte Elemente des Stacks zurück ohne den Stack zu modifizieren
  • int[] pop(int n)
    • gibt die letzten n Elemente des Stacks zurück und entfernt diese vom Stack

Wird auf einen leeren Stack pop() oder peek() aufgerufen sollte eine Fehlermeldung ausgegeben werden.

Leg in der Main Methode einen Stack an und schreib ein paar Beispiel-Verwendungen.

Tip: Für die Implementation kannst du deine doppelt Verkettete Liste aus dem letzten Modul verwenden!!! Lege ein Klassen-Attribut von deiner Liste an NICHT von der Node!!!!

Aufgabe: Queue

Queue

Implementiere einen IntQueue! Eine Queue ist eine Schlange, wie eine Warteschlange, in der immer Elemente in der Reihenfolge abgearbeitet werden wie sie aufgenommen werden - dem First in first out Prinzip. Die Klasse Queue sollte folgende Methoden haben:

  • void enqueue(int newElement)
    • fügt ein neues Element hinten in die Schlange ein
  • int size()
    • gibt die Anzahl der Elemente in der Queue zurück
  • int dequeue()
    • gibt das erste Elemente der Schlange zurück und entfernt dieses daraus
  • int[] dequeue(int n)
    • gibt die ersten n Elemente der Schlange zurück und entfernt diese daraus

Leg in der Main Methode eine Queue an und schreib ein paar Beispiel-Verwendungen.

Tip: Für die Implementation kannst du deine doppelt Verkettete Liste aus dem letzten Modul verwenden!!! Lege ein Klassen-Attribut von deiner Liste an NICHT von der Node!!!!

Aufgabe: Fotografie

Fotografie

Implementiere die Klassen Camera und Lens. Eine Kamera besitzt einige Eigenschaften - eine Marke brand, eine Anzahl an MegaPixeln megaPixels, eine Display Größe displaySize und ein boolsches Flag, welches ausdrückt ob die Kamera schwarz-weiß oder Farb-Fotos aufnimmt colored. Außerdem besitzt eine Kamera ein Objektiv Lens welches eine minimale und maximale Brennweite besitzt.

Verwende bei allen Variablen getter & setter. Füge beim Setzen der Brennweiten eines Objektivs bzw beim Konstruieren eines Objektivs einen Check hinzu, dass die maximale Brennweite immer größer sein muss als die angegebene minimale Brennweite.

Implementiere statische Zählervariablen für die Kamera und für das Objektiv, die mitzählen wieviele Instanzen einer Klasse angelegt wurden.

Lege in der Main Klasse mehrere Kameras an und wechsle auch auf mindestens einer das Objektiv. Überschreibe die To-String Methoden beider Klassen.