DCV 2024 09/Objekt Orientierte Programmierung Übungen: Unterschied zwischen den Versionen

Aus CCWiki
Zur Navigation springen Zur Suche springen
Sandro (Diskussion | Beiträge)
Die Seite wurde neu angelegt: „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 * Bezie…“
 
Sandro (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 17: Zeile 17:
* Designpatterns
* Designpatterns


=== Aufgabe: Datenklasse ===
Es soll eine '''Methode''' erstellt werden, welche das '''kleinste''' und das '''größte Element''' sowie den '''Durchschnitt''' eines {{JSL|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 {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|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 {{JSL|toString()}} '''Methode''' und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.


=== Aufgabe: Person ===
=== Aufgabe: Person ===
Zeile 32: Zeile 26:
Erstelle weiters eine {{JSL|toString()}} '''Methode''' und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.
Erstelle weiters eine {{JSL|toString()}} '''Methode''' und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.


 
=== Aufgabe: Datenklasse ===
Es soll eine '''Methode''' erstellt werden, welche das '''kleinste''' und das '''größte Element''' sowie den '''Durchschnitt''' eines {{JSL|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 {{JSL|int[]}}, verwende auch ein zufallsgeneriertes {{JSL|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 {{JSL|toString()}} '''Methode''' und erstelle einen schönen {{JSL|String}} mit den gegebenen Werten.


=== Aufgabe: Fotoapparat ===
=== Aufgabe: Fotoapparat ===

Version vom 20. Oktober 2024, 18:45 Uhr

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: 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.

Aufgabe: 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.