Aufgaben: Klassen, Vererbung und UML
Eine Klasse Fahrrad hat die Attribute farbe (String) und gaenge (int) sowie die Methode schalte(int g). a) Zeichnen Sie das UML-Klassendiagramm (als Text mit drei…
Eine Klasse Fahrrad hat die Attribute farbe (String) und gaenge (int) sowie die Methode schalte(int g).
- a) Zeichnen Sie das UML-Klassendiagramm (als Text mit drei Abschnitten).
- b) Erklären Sie den Unterschied zwischen Klasse und Objekt und geben Sie ein Beispielobjekt an.
Gegeben ist die Klasse a) Erklären Sie die Bedeutung von private und public. b) Ergänzen Sie eine Methode einzahlen(double betrag), die nur positive Beträge akzeptiert.
Gegeben ist die Klasse
public class Konto {
private double stand;
public double getStand() { return stand; }
}
- a) Erklären Sie die Bedeutung von
privateundpublic.
- b) Ergänzen Sie eine Methode
einzahlen(double betrag), die nur positive Beträge akzeptiert.
Die Klasse Tier hat die Unterklassen Hund und Katze. a) Zeichnen Sie das Vererbungsdiagramm. b) Erklären Sie, was Vererbung bedeutet, und nennen Sie ein Attribut, das in…
Die Klasse Tier hat die Unterklassen Hund und Katze.
- a) Zeichnen Sie das Vererbungsdiagramm.
- b) Erklären Sie, was Vererbung bedeutet, und nennen Sie ein Attribut, das in
Tierstehen sollte.
Eine Bibliothek verwaltet Medien: Bücher (mit Seitenzahl) und DVDs (mit Spieldauer). Beide haben Titel und Signatur. a) Entwerfen Sie ein Klassendiagramm mit Oberklasse…
Eine Bibliothek verwaltet Medien: Bücher (mit Seitenzahl) und DVDs (mit Spieldauer). Beide haben Titel und Signatur.
- a) Entwerfen Sie ein Klassendiagramm mit Oberklasse
Medium.
- b) Schreiben Sie die Java-Klassen
MediumundBuchmit Konstruktoren (Aufrufsuper).
a) Erklären Sie, warum new Form() nicht erlaubt ist. b) Berechnen Sie die Summe der Flächen für Form[] f = { new Kreis(1), new Quadrat(2) }; auf zwei Nachkommastellen…
abstract class Form { abstract double flaeche(); }
class Kreis extends Form {
double r;
Kreis(double r){ this.r = r; }
double flaeche(){ return Math.PI * r * r; }
}
class Quadrat extends Form {
double a;
Quadrat(double a){ this.a = a; }
double flaeche(){ return a * a; }
}
- a) Erklären Sie, warum
new Form()nicht erlaubt ist.
- b) Berechnen Sie die Summe der Flächen für
Form[] f = { new Kreis(1), new Quadrat(2) };auf zwei Nachkommastellen genau.
- c) Erläutern Sie, wo hier Polymorphie auftritt.
Ein Schulverwaltungsprogramm hat die Klassen Person (name), Schueler (klasse) und Lehrer (kuerzel). Ein Kurs hat genau einen Lehrer und viele Schüler. Ein Schüler kann…
Ein Schulverwaltungsprogramm hat die Klassen Person (name), Schueler (klasse) und Lehrer (kuerzel). Ein Kurs hat genau einen Lehrer und viele Schüler. Ein Schüler kann mehrere Kurse besuchen, und ein Lehrer kann mehrere Kurse unterrichten.
- a) Zeichnen Sie ein UML-Diagramm mit Vererbung und Assoziationen samt Multiplizitäten.
- b) Geben Sie an, wie die Assoziation
Kurs–Schuelerin Java als Attribut umgesetzt wird.
a) Geben Sie die Ausgabe von A x = new B(); System.out.println(x.hallo()); an und begründen Sie sie (dynamisches Binden). b) Erklären Sie, wie sich die Ausgabe ändert,…
class A { String wer(){ return "A"; } String hallo(){ return "Hallo " + wer(); } }
class B extends A { String wer(){ return "B"; } }
- a) Geben Sie die Ausgabe von
A x = new B(); System.out.println(x.hallo());an und begründen Sie sie (dynamisches Binden).
- b) Erklären Sie, wie sich die Ausgabe ändert, wenn
wer()inAalsprivatedeklariert wäre, und warumB.wer()dann keine Überschreibung ist.
- c) Beurteilen Sie den Nutzen von Polymorphie für die Erweiterbarkeit von Software.
Ein Verkehrssimulationsprogramm für Köln soll Fahrzeuge (Auto, Bus, Fahrrad) verwalten. Jedes Fahrzeug hat Position und Geschwindigkeit und muss sich in jedem…
Ein Verkehrssimulationsprogramm für Köln soll Fahrzeuge (Auto, Bus, Fahrrad) verwalten. Jedes Fahrzeug hat Position und Geschwindigkeit und muss sich in jedem Zeitschritt bewegen; die Bewegung unterscheidet sich je Typ. Busse halten zusätzlich an Haltestellen.
- a) Entwerfen Sie eine Klassenhierarchie mit abstrakter Oberklasse und begründen Sie, was abstrakt ist.
- b) Schreiben Sie Java-Code für die abstrakte Klasse und eine Unterklasse mit der Methode
bewege().
- c) Begründen Sie, wie Kapselung (private Attribute, Getter) Fehler in der Simulation vermeiden hilft.
Gegeben ist die Klassenbibliothek java.util.ArrayList<Schueler>. Die Klasse Schueler besitzt eine Methode double getNote(). a) Schreiben Sie eine Methode double…
Gegeben ist die Klassenbibliothek java.util.ArrayList<Schueler>. Die Klasse Schueler besitzt eine Methode double getNote().
- a) Schreiben Sie eine Methode
double durchschnitt(ArrayList<Schueler> liste), die den Durchschnitt vongetNote()berechnet und den Fall der leeren Liste behandelt. Begründen Sie Ihre Entscheidung für das Verhalten bei leerer Liste (z. B. Rückgabewert $0{,}0$,Double.NaNoder Auslösen einer Ausnahme).
- b) Erläutern Sie Vorteile der Wiederverwendung von Klassenbibliotheken.
- c) Beschreiben Sie, wie Sie die Methode systematisch testen (mindestens vier Testfälle mit erwarteten Ergebnissen).