Difference between revisions of "Java - OOP 2"

From Coders.Bay Wiki
Jump to navigation Jump to search
Line 3: Line 3:
====Aufgabe: Stack====
====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:
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)
*void push(int newElement)
Line 16: Line 16:
**gibt die letzten n Elemente des Stacks zurück und entfernt diese vom Stack
**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.
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!
Leg in der Main Methode einen Stack an und schreib ein paar Beispiel-Verwendungen. Vergiss nicht auf die Unittests!
Line 22: Line 22:
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:
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)
*void enqueue(int newElement)
Line 33: Line 33:
**gibt die ersten n Elemente der Schlange zurück und entfernt diese daraus
**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.
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.
Leg in der Main Methode eine Queue an und schreib ein paar Beispiel-Verwendungen.
Line 40: Line 40:
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.
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.
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.
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.
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:18, 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.