Zurück zur StartseiteInformatik · Q1 Grundkurs · Fach wechseln
Kostenlos starten
Lernunterlagen

Aufgaben: Klassen, Vererbung und UML

Üben★☆☆
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).

  1. a) Zeichnen Sie das UML-Klassendiagramm (als Text mit drei Abschnitten).
  1. b) Erklären Sie den Unterschied zwischen Klasse und Objekt und geben Sie ein Beispielobjekt an.
Lösen
Üben★☆☆
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; }

}
  1. a) Erklären Sie die Bedeutung von private und public.
  1. b) Ergänzen Sie eine Methode einzahlen(double betrag), die nur positive Beträge akzeptiert.
Lösen
Üben★☆☆
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.

  1. a) Zeichnen Sie das Vererbungsdiagramm.
  1. b) Erklären Sie, was Vererbung bedeutet, und nennen Sie ein Attribut, das in Tier stehen sollte.
Lösen
Üben★★☆
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.

  1. a) Entwerfen Sie ein Klassendiagramm mit Oberklasse Medium.
  1. b) Schreiben Sie die Java-Klassen Medium und Buch mit Konstruktoren (Aufruf super).
Lösen
Üben★★☆
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; }

}
  1. a) Erklären Sie, warum new Form() nicht erlaubt ist.
  1. b) Berechnen Sie die Summe der Flächen für Form[] f = { new Kreis(1), new Quadrat(2) }; auf zwei Nachkommastellen genau.
  1. c) Erläutern Sie, wo hier Polymorphie auftritt.
Lösen
Üben★★☆
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.

  1. a) Zeichnen Sie ein UML-Diagramm mit Vererbung und Assoziationen samt Multiplizitäten.
  1. b) Geben Sie an, wie die Assoziation Kurs–Schueler in Java als Attribut umgesetzt wird.
Lösen
Üben★★★
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"; } }
  1. a) Geben Sie die Ausgabe von A x = new B(); System.out.println(x.hallo()); an und begründen Sie sie (dynamisches Binden).
  1. b) Erklären Sie, wie sich die Ausgabe ändert, wenn wer() in A als private deklariert wäre, und warum B.wer() dann keine Überschreibung ist.
  1. c) Beurteilen Sie den Nutzen von Polymorphie für die Erweiterbarkeit von Software.
Lösen
Üben★★★
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.

  1. a) Entwerfen Sie eine Klassenhierarchie mit abstrakter Oberklasse und begründen Sie, was abstrakt ist.
  1. b) Schreiben Sie Java-Code für die abstrakte Klasse und eine Unterklasse mit der Methode bewege().
  1. c) Begründen Sie, wie Kapselung (private Attribute, Getter) Fehler in der Simulation vermeiden hilft.
Lösen
Üben★★★
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().

  1. a) Schreiben Sie eine Methode double durchschnitt(ArrayList<Schueler> liste), die den Durchschnitt von getNote() 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.NaN oder Auslösen einer Ausnahme).
  1. b) Erläutern Sie Vorteile der Wiederverwendung von Klassenbibliotheken.
  1. c) Beschreiben Sie, wie Sie die Methode systematisch testen (mindestens vier Testfälle mit erwarteten Ergebnissen).
Lösen