Premium Partner

Programming 2 - Java

Vorbereitung Semesterprüfung.

Vorbereitung Semesterprüfung.


Kartei Details

Karten 21
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 15.06.2023 / 15.06.2023
Lizenzierung Kein Urheberrechtsschutz (CC0)
Weblink
https://card2brain.ch/box/20230615_programming_2_java
Einbinden
<iframe src="https://card2brain.ch/box/20230615_programming_2_java/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was sind Ziele von OOP, bzw. welche 6 Eigenschaften sollte Code haben?

Efficient, extendable, maintainable, reliable, usable, reusable

Wie sieht eine CRC-Karte aus ? Was sind deren Inhalte?

 

Wie ist das Vorgehen beim Erstellen von CRC-Karten?

1. Auf Basis der Systemanforderungen ca. 5 Hauptkonzepte (= Nomen) finden. —> Classes

2. Sich fragen, was die Objekte dieser Klassen wissen und was sie mit diesem Wissen tun können. —> Responsibilities

3. Sich fragen, welche andere Objekte / Klassen eine Klasse kennen muss, damit sie ihre responsibilities wahrnehmen kann —> Collaborators

Was sind einige good practices beim Erstellen von CRC-Karten? (4)

- Papier und Stift verwenden
- Agil bleiben —> Mit Classes, Responsibilities und Collaborators spielen 
- Nicht die perfekte Lösung suchen —> Wird sowieso refactored
- Klassen challengen anhand den Design Principles

Welche 4 Arten von Klassen gibt es (im Kontext von CRC)?

1. Klassen, welche ein einzelnes Konzept aus der Problemumgebung repräsentieren (z.B. in der Geometrie -> Rechteck, im Banking -> BankAccount)

2. Klassen welche für die System-Implementierung benötigt werden (z.B. Controller, Factory, …)

3. Value Classes, welche essentielle Werte beinhalten (z.B. Position, Rechteck). Identität spielt keine Rolle und sind oft Immutable

4. Entity Classes. Identität spielt eine Rolle. (z.B. Pacman, Ghost)

Was sind 3 fundamentale Konzepte von OOP?

1. Encapsulation

2. Cohesion

3. Coupling

Was bedeutet Encapsulation? (4 Punkte)

- Klassen sind Blackboxes
- Konzept des Data Hiding -> Variablen sind gegenüber anderen Objekten nicht exposed
- Ist der Schlüssel für Reuse- und reliability
- Regel: Objekte sollen nur durch Method Calls miteinander interagieren

Was bedeutet Cohesion? (1 Punkt)
Wann ist Cohesion aus Sicht einer Klasse gegeben? (1 Punkt)

- Eine Klasse repräsentiert ein einzelnes Konzept
- Ein Public Interface ist cohesive, wenn dessen Feature mit dem Klassenkonzept übereinstimmen (z.B. Klasse Pacman darf das Spiel nicht starten können)

1. Was ist Coupling?
2. Wo ist Coupling grafisch dargestellt?

1. - Coupling = Klassenabhängigkeit. Ist gegeben, wenn Objekte einander gegenseitig brauchen
   - High Coupling = Viele Abhängigkeiten // Low Coupling = wenige
   - Coupling sollte minimiert werden, um den Impact von Interface-Änderungen zu minimieren


2.  - Diese Abhängigkeiten werden im Klassendiagramm visualisiert