Difference between revisions of "Java - OOP 2"

From Coders.Bay Wiki
Jump to navigation Jump to search
(Created page with "==Tag 1== ===Objektorientierung=== ====Aufgabe: Stack==== Implementiere einen IntStack! Ein Stack ist ein Stapel, der immer die Dinge zuerst abarbeitet, die er zuletzt bekomm...")
 
Line 36: Line 36:


Leg in der Main Methode eine Queue an und schreib ein paar Beispiel-Verwendungen.
Leg in der Main Methode eine Queue an und schreib ein paar Beispiel-Verwendungen.
====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 und gib dir ihre Darstellung auf der Konsole nach der Instanzierung aus.

Revision as of 17:15, 19 December 2021

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 'StackTooSmallException' geworfen werden.

Leg in der Main Methode einen Stack an und schreib ein paar Beispiel-Verwendungen. Vergiss nicht auf die Unittests!

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

Wird auf eine leere Queue 'dequeue()' aufgerufen sollte eine 'QueueTooSmallException' geworfen werden.

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

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 und gib dir ihre Darstellung auf der Konsole nach der Instanzierung aus.