DCV 2024 09/Objekt Orientierte Programmierung Übungen

Aus CCWiki
Zur Navigation springen Zur Suche springen

Im folgenden sollen diese Begriffe verstanden und angewandt werden. Diese sind nicht chronologisch geordnet.

Tip: Für weitere Informationen: Objektorientierte Programmierung
  • Klasse
    • Instanz- vs. Klassenmethode
    • Instanz- vs. Klassenattribut
    • Innere Klassen (statisch vs. nicht statisch)
  • Enumeration (enum)
  • Collections (Liste, Set, Map)
  • Vererbung
  • Abstrakte Klasse
  • Interface
  • Polymorphismus
  • Beziehungen
    • Has-A vs. Is-A
    • Implementierung von Interfaces
  • Generics
  • Designpatterns


Aufgabe: Person

Erstelle eine Klasse welche die typischen Werte eines Menschen speichern kann.

  • Größe
  • Alter
  • Name
  • Gewicht

Erstelle weiters eine toString() Methode und erstelle einen schönen String mit den gegebenen Werten.


Aufgabe: Türkische Serie

Erstelle eine Klasse welche die typischen Werte einer TV-Serie speichern kann.

  • Title
  • Genre
  • Jahr
  • Originalsprache

Erstelle weiters eine toString() Methode und erstelle einen schönen String mit den gegebenen Werten.

Erstelle weiterhin 2-3 Objekten, als typische türkische Serien.

Erweitere deine Klasse mit den Attributen

  • Regisseur
  • Produzent

Verwende hierfür die bereits bestehende Objekt-Klasse Person, aus dem vorherigen Beispiel.


Aufgabe: Datenklasse

Es soll eine Methode erstellt werden, welche das kleinste und das größte Element sowie den Durchschnitt eines int[] ermittelt und zurückgibt. Alle ermittelten Werten sollen in einem Datenobjekt zurückgegeben werden. Erstelle dazu eine Datenklasse welche die entsprechenden Werte enthält. Teste diese Methode ausgiebig mit verschiedenen int[], verwende auch ein zufallsgeneriertes int[] mit negativen und positiven Werten.

  • Erstelle die Datenklasse mit einem Sinnvollen Klassennamen und entsprechenden Attributen. Achte hierbei auch auf die Korrekte Sichtbarkeit
  • Erstelle in in der Datenklasse einen Konstruktor welcher alle Werte entgegennimmt und erstelle getter für alle Werte
  • Überschreibe die toString() Methode und erstelle einen schönen String mit den gegebenen Werten.

Aufgabe: Fotoapparat

Erstelle eine Fotoapparat Klasse.

  • Mit zumindest folgenden Attributen (es dürfen auch gerne mehr sein), Brennweite min/max, Model, Hersteller und Megapixel.
  • Erstelle für die Attribute getter und setter
  • Erstelle weiters die Methode takePhoto(), die ein Foto schießt (Mach einfach eine nette Ausgabe)
  • Überschreibe die toString() Methode und gib die relevanten Daten als String zurück

Erstelle verschiedene Instanzen der Fotoapparat Klasse und Teste diese ausgiebig.

Bonusaufgabe: Fotoapparat & Objektiv & Speicherkarte

Erweitere das vorhergehende Beispiel um die Klassen Objektiv und Speicherkarte. Die Brennweite der Kamera fällt demnach weg. Das Objektiv und die Speicherkarte sollen getauscht werden können. Erstelle Methoden um zu erfragen wieviele Fotos bereits aufgenommen wurden und wieviel Speicher noch frei ist. Für die Berechnung speicherplatz pro bild, kann ein wert von 0.3mb pro Megapixel angenommen werden.[1]

Handhabung von dynamischen Datenstrukturen (ArrayList, Vector, LinkedList, HashSet, HashMap)

Aufgabe: Vector erstellen

Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.

Gib den Vector mit System.out.println() aus.

Aufgabe: Vector erstellen

Erstelle einen Vector mit 20 Zufallszahlen zwischen 0 und 99.

Erstelle jeweils eine Funktionen für:

  1. Zählen der geraden Zahlen
  2. Suche nach der kleinsten Zahl
  3. Suche nach der größten Zahl
  4. Sortiere die Elementen absteigend
  5. Lösche alle Ungerade Zahlen

Aufgabe: Zwei Vectoren zusammenführen

Es gibt zwei Vectoren mit 20 Elementen, die nach Größe sortiert sind.

Erstelle einen dritten Vector, in dem du die Elemente der vorhergehenden Vectoren zusammenfügst, der neu erstellte Vector soll immer noch sortiert sein.

Aufgabe: Person 2.0

Erstelle eine Klasse welche die typischen Werte eines Menschen speichern kann.

  • Größe
  • Alter
  • Name
  • Gewicht

Erstelle weiters eine Methode welche eine List von Personen erhält und bezüglich Größe, Alter, Gewicht, das kleinste und das größte Element sowie den Durchschnitt berechnet und wie in der vorhergehenden Aufgabe in einer eigenen Klasse zurückgibt.

Aufgabe: Person Sortiert

Verwende die erstellte Klasse aus dem vorhergehenden Beispiel und erstelle eine Methode welche eine List von Personen nach entweder nach Größe, Alter, Gewicht, oder Name sortiert. Hierfür kann ein enum verwendet werden, oder auch einfach ein int.

Bonusaufgabe: Permutation

Erstelle eine Vector mit einzelnen Buchstaben. Zum Beispiel ["A", "B", "C", "D"].

Implementiere den bekannten Permutationsalgorithmus, diesmal mit Hilfe von Vectoren.