DCV 2023 09/Uebung Objektorientierte Programmierung

Aus CCWiki
Version vom 17. August 2023, 09:41 Uhr von Drlue (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Intro == In folgender Übung wird ein {{JSL|Enum}} verlangt. Ein {{JSL|Enum}}, ist einer Klasse sehr ähnlich, jedoch hat Sie zur Laufzeit eine Definierte Anzahl von Instanzen. Es können keine neuen Instanzen zur Laufzeit erstellt werden. Anbei ein Beispiel: {{JML|code= //Direction.java public enum Direction { UP, DOWN, LEFT, RIGHT } //Moveable.java public class Moveable { public void move(Direction dir) { //TODO } } //MoveMain.java ...…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Intro

In folgender Übung wird ein Enum verlangt. Ein Enum, ist einer Klasse sehr ähnlich, jedoch hat Sie zur Laufzeit eine Definierte Anzahl von Instanzen. Es können keine neuen Instanzen zur Laufzeit erstellt werden. Anbei ein Beispiel:

//Direction.java
public enum Direction {
  UP, DOWN, LEFT, RIGHT
}

//Moveable.java
public class Moveable {
  public void move(Direction dir) {
     //TODO
  }
}

//MoveMain.java
...
public static void main(String[] args) {
  Moveable moveable = createMoveable();
  Direction d = getRandomDirection();
  moveable.move(d);
}

Vorbereitung

  1. Öffne IntelliJ
  2. Schließe das bestehende Projekt
    1. File
    2. Close Project
  3. Nun solltest du den Welcome Screen von IntelliJ sehen
  4. Klicke auf Get from VCS
    1. Version control: Git
    2. URL: https://gitlab.drlue.at/digitalcampus/codingcampus_2021.09.selbstkontrolle.oop.i.git
    3. Clone

Wiederholung

Wiederholung zur strukturierten Programmierung.

Aufgabe 1)

Siehe Package: at/digitialcampus/codingcampus/repetition/excercise1

Lies einen String vom Benutzer ein (ganze Zeile) und einen int. Die Zahl besagt wie oft der String ausgegeben werden soll. Wird ein leerer String oder eine ungültiger int eingegeben, so soll die Eingabe erneut erfolgen.

Eingabe

Bitte geben Sie einen Text ein:
>> Heute wird ein guter Tag
Wie oft soll der Text ausgegeben werden:
>> 3

Ausgabe

Heute wird ein guter Tag
Heute wird ein guter Tag
Heute wird ein guter Tag

OOP

Aufgabe 2)

Siehe Package: at/digitialcampus/codingcampus/oop/excercise2

Erstelle folgend die Klasse Person. Diese Klasse soll die Attribute Name, Age und Gender besitzen (Name, Alter, Geschlecht). Für das Geschlecht ist ein enum zu erstellen (female, male, divers).

Erstelle getter und setter für alle Attribute.

Überschreibe weiters toString() und erstelle einen String der alle relevanten Informationen enthält.

Erstelle mindestens 6 verschiedene Person in der main Methode und gib diese aus.

Aufgabe 3)

Siehe Package: at/digitialcampus/codingcampus/oop/excercise3

Erstelle folgend die Klasse House. Ein Haus hat die Attribute Doors, Windows, Address (Türen, Fenster, Adresse) und eine List von Person. Verwende dafür die Person aus dem vorhergehenden Beispiel. Die Klasse House soll weiters die Methode addPerson(Person person) enthalten um Personen hinzuzufügen. Erstelle getter und setter für alle Attribute.

Überschreibe nun toString() und gib alle relevanten Informationen vom Haus zurück. Dazu gehören auch die Personen die darin leben (verwende toString() von Person.

Erstelle mindestens 3 verschiedene Häuser in der main Methode, füge einige Personen hinzu, und gib dann das Haus aus.

Aufgabe 4)

Siehe Package: at/digitialcampus/codingcampus/oop/excercise4

Erstelle eine Klasse SortedHouse welche von House aus dem vorhergehenden Beispiel erbt. Überschreibe addPerson(Person person) und sortiere, nach dem Namen, entweder die List nach dem Einfügen der Person oder füge diese direkt an der richtigen Stelle ein.

Erstelle mindestens 3 verschiedene Häuser in der main Methode, füge einige Personen hinzu, und gib dann das Haus aus.