Zurück zur Modulübersicht
12.1Jgst. 12EinstiegWird aufgebaut

Objektorientierte Modellierung und Programmierung

Klassen, Objekte, Vererbung, Polymorphie – die Bausteine moderner Software.

4 Stunden LernzeitJava · OOP · UML · Modellierung

Ihr Fortschritt

Modul-Fortschritt0 %

Lernziele

  • Du benennst die Bestandteile einer Klassendefinition (Klassenkopf, Klassenrumpf, Attribute).
  • Du ordnest Java-Datentypen den passenden Attributen zu.
  • Du schreibst eine vollständige Klassendefinition fehlerfrei in die IDE.
  • Du erkennst typische Fehler in einer Klassendefinition und korrigierst sie.
  • Du überträgst das Prinzip auf Methoden und Konstruktoren.

Schritt 1

Motivation

Vom Bauplan zum lauffähigen Java-Programm.

In der letzten Stunde habt ihr Klassen und Objekte als Bauplan und Instanz kennengelernt. Damit der Computer den Bauplan versteht, müssen wir ihn in Java-Code umwandeln. In diesem Lernpfad übst du Schritt für Schritt, wie eine Klassendefinition korrekt aufgebaut ist – inklusive Attributen, Methoden und Konstruktoren.

Schritt 2

Erklärung

Die wichtigsten Begriffe der Klassendefinition kompakt.

Eine Klassendefinition in Java besteht aus zwei Teilen:

  • dem Klassenkopf: class Klassenname (mit Großbuchstabe am Anfang)
  • dem Klassenrumpf: eingerahmt von { und }, enthält Attribute und Methoden

Attributdeklaration: <Datentyp> <Attributname>; – also zuerst der Datentyp, dann der Name (klein geschrieben), abgeschlossen mit Semikolon.

Schlüsselkonzept

Die wichtigsten Datentypen in Java

DatentypBedeutungBeispiel
intganze Zahl42, -7
doubleDezimalzahl3.14, 2.0
booleanWahrheitswerttrue, false
chareinzelner Buchstabe'A', 'z'
StringText (groß geschrieben!)"Hallo"

Schritt 6

Aufgabe 1 – Fachbegriffe

Prüfe, ob du die zentralen Begriffe sicher beherrschst.

Quiz: Fachbegriffe der Klassendefinition

8 Fragen
  1. 1.Wie nennt man die Zeile, in der das Schlüsselwort class und der Klassenname stehen?

  2. 2.Welcher Bereich wird durch { und } eingerahmt und enthält Attribute und Methoden?

  3. 3.Mit welchem Schlüsselwort beginnt jede Klassendefinition in Java?

  4. 4.Wie sieht die Deklaration eines Attributs in Java aus?

  5. 5.Welche Schreibweise gilt für Klassennamen in Java?

  6. 6.Welche Aussagen über den Datentyp boolean sind richtig?

  7. 7.Welcher Datentyp passt zum Attribut 'alter' einer Person?

  8. 8.Warum ist String groß geschrieben, int aber klein?

Schritt 5

Aufgabe 2 – Klassendiagramm beschriften

Ziehe die Begriffe per Drag & Drop auf die passenden Bereiche der Klassendefinition.

Bestandteile der Klassendefinition

Lege jeden Begriff auf den passenden Bereich der Klasse Auto.

Begriffe zuordnen
class Auto {
  String hersteller;
  int    ps;
  double verbrauch;
}
  • 1class Auto {
    hier ablegen …
  • 2Auto
    hier ablegen …
  • 3{ ... }
    hier ablegen …
  • 4String hersteller;
    hier ablegen …
  • 5String
    hier ablegen …
  • 6hersteller
    hier ablegen …

Begriffe

Tipp: Begriff per Drag & Drop in eine Zone ziehen – oder ihn anklicken, dann landet er automatisch in der nächsten freien Zone.

Schritt 5

Aufgabe 3 – Lücken füllen

Vervollständige die folgenden Klassendefinitionen. Die Attributnamen verraten den Datentyp (z. B. ps → int, name → String).

3a – Klasse Auto

Es fehlen das Signalwort und einige Datentypen.

Lückentext
 Auto {
   hersteller;
   ps;
   verbrauch;
}

3b – Klasse Schueler

Auch der Klassenname fehlt.

Lückentext
class  {
   name;
   vorname;
   alter;
   note;
}

3c – Klasse Buch

Achte auf die geschweiften Klammern und das Schlüsselwort.

Lückentext
 Buch 
   titel;
   autor;
   seitenzahl;
   ausgeliehen;

3d – Klasse Roboter

Mehrere Datentypen fehlen – nutze die Attributnamen als Hinweis.

Lückentext
class  {
   name;
   typ;
   achse1;
   achse2;
   gewicht;
   aktiv;
}

Schritt 5

Aufgabe 4 – Attribute eintragen

Der Klassenkopf ist gegeben. Schreibe pro Zeile genau ein Attribut (Datentyp + Name + Semikolon).

4a – Klasse Person

Attribute eintragen

Eine Person hat Name (Text), Vorname (Text), Alter (ganze Zahl), Geschlecht (einzelner Buchstabe) und PLZ (ganze Zahl).

class Person {
1·
2·
3·
4·
5·
6·
}

4b – Klasse Konto

Attribute eintragen

Ein Bankkonto hat eine Kontonummer (ganze Zahl), einen Inhaber (Text), einen Saldo (Dezimalzahl) und die Information, ob es gesperrt ist (Wahrheitswert).

class Konto {
1·
2·
3·
4·
5·
}

4c – Klasse Fahrrad

Attribute eintragen

Ein Fahrrad hat einen Hersteller (Text), eine Rahmengröße (Dezimalzahl), eine Gangzahl (ganze Zahl), eine Farbe (Text) und ein Schloss (Wahrheitswert: vorhanden?).

class Fahrrad {
1·
2·
3·
4·
5·
6·
}

4d – Klasse Smartphone

Attribute eintragen

Ein Smartphone hat ein Modell (Text), eine Akkuleistung in mAh (ganze Zahl), eine Speichergröße in GB (ganze Zahl), ein Gewicht in g (Dezimalzahl) und ist 5G-fähig (Wahrheitswert).

class Smartphone {
1·
2·
3·
4·
5·
6·
}

4e – Klasse Hund

Attribute eintragen

Ein Hund hat einen Namen (Text), eine Rasse (Text), ein Alter (ganze Zahl), ein Gewicht (Dezimalzahl), das Geschlecht (einzelner Buchstabe) und die Info, ob er geimpft ist (Wahrheitswert).

class Hund {
1·
2·
3·
4·
5·
6·
7·
}

Schritt 5

Aufgabe 5 – Fehlersuche

In jeder der folgenden Klassendefinitionen verstecken sich Fehler. Beschreibe in eigenen Worten, was falsch ist. Die Auswertung erfolgt offline über einen Stichwortabgleich.

5a – Klasse mit Schreibfehlern

Fehlersuche
Class auto {
  string hersteller;
  int    ps
  double verbrauch;
}

5b – Fehlende Klammern

Fehlersuche
class Buch
  String titel;
  String autor;
  int    seiten;
}

5c – Falsche Datentypen

Fehlersuche
class Konto {
  int    inhaber;
  String saldo;
  int    gesperrt;
}

5d – Mehrere kleine Schludrigkeiten

Fehlersuche
class person {
  String Name;
  string vorname
  double alter;
}

5e – Fehlende Klammer am Ende

Fehlersuche
class Roboter {
  String name;
  String typ;
  double achse1, achse2;
  boolean aktiv;

Schritt 7

Methoden – das gleiche Prinzip

Methoden haben ebenfalls einen Kopf und einen Rumpf. Übe in den folgenden Aufgaben den richtigen Aufbau.

Aufgabe 6 – Begriffe einer Methode zuordnen

Bestandteile einer Methodendefinition

Ordne die Begriffe der Methode nameSetzen zu.

Begriffe zuordnen
void nameSetzen(String n) {
  this.name = n;
}
  • 1void nameSetzen(String n)
    hier ablegen …
  • 2void
    hier ablegen …
  • 3nameSetzen
    hier ablegen …
  • 4String n
    hier ablegen …
  • 5{ this.name = n; }
    hier ablegen …
  • 6this.name = n;
    hier ablegen …

Begriffe

Tipp: Begriff per Drag & Drop in eine Zone ziehen – oder ihn anklicken, dann landet er automatisch in der nächsten freien Zone.

Aufgabe 7 – Lücken in Methodendefinitionen

7a – Methode nameAusgeben

Ergänze Rückgabetyp und die fehlende Klammer.

Lückentext
 nameAusgeben() 
  System.out.println(name);
}

7b – Methode alterSetzen

Ergänze den Parametertyp und das Schlüsselwort.

Lückentext
void alterSetzen( a) {
  .alter = a;
}

7c – Methode beideNamenSetzen

Ergänze die fehlenden Datentypen.

Lückentext
void beideNamenSetzen( n,  vn) {
  this.name = n;
  this.vorname = vn;
}

Aufgabe 8 – Fehler in einer Methode

8a – Fehlerhafte Methode

Fehlersuche
Void NameAusgeben() {
  System.out.println(name)
}

8b – Methode mit falschem Parameter

Fehlersuche
void plzSetzen(String z) {
  this.plz = z;
}

Schritt 7

Konstruktoren – das gleiche Prinzip

Konstruktoren legen neue Objekte an. Hier dieselben Übungstypen wie zuvor.

Aufgabe 9 – Begriffe eines Konstruktors

Bestandteile eines Konstruktors

Ordne die Begriffe dem Konstruktor zu.

Begriffe zuordnen
Person(String n, int a) {
  this.name  = n;
  this.alter = a;
}
  • 1Person(String n, int a)
    hier ablegen …
  • 2Person
    hier ablegen …
  • 3String n, int a
    hier ablegen …
  • 4{ ... }
    hier ablegen …
  • 5this
    hier ablegen …

Begriffe

Tipp: Begriff per Drag & Drop in eine Zone ziehen – oder ihn anklicken, dann landet er automatisch in der nächsten freien Zone.

Aufgabe 10 – Lücken im Konstruktor

10a – Standardkonstruktor

Der Konstruktor heißt wie die Klasse.

Lückentext
class Auto {
  String hersteller;
  int    ps;

  () {
      this.hersteller = "unbekannt";
      this.ps         = 0;
  }
}

10b – Konstruktor mit Parametern

Achte auf Datentypen und this.

Lückentext
Person( n,  a) {
  .name  = n;
  .alter = a;
}

10c – Konstruktor ohne Rückgabetyp

Achtung: Konstruktoren haben **keinen** Rückgabetyp – auch nicht void!

Lückentext
class Konto {
  int    nummer;
  double saldo;

   ( n,  s) {
      this.nummer = n;
      this.saldo  = s;
  }
}

Aufgabe 11 – Fehler im Konstruktor

11a – Konstruktor mit Rückgabetyp

Fehlersuche
class Person {
  String name;

  void Person(String n) {
      this.name = n;
  }
}

11b – Falscher Konstruktorname

Fehlersuche
class Auto {
  String hersteller;

  auto(String h) {
      this.hersteller = h;
  }
}

Schritt 8

Zusammenfassung

Die wichtigsten Punkte auf einen Blick.

  • Klassenkopf: class Klassenname { – Klassenname groß.
  • Klassenrumpf: alles zwischen { und } – enthält Attribute und Methoden.
  • Attribut: <Datentyp> <Attributname>; – Attributname klein, mit Semikolon.
  • Datentypen: int, double, boolean, char, String (groß!).
  • Methode: <Rückgabetyp> name(<Parameter>) { … } – Methodenname klein, CamelCase.
  • Konstruktor: heißt exakt wie die Klasse, hat keinen Rückgabetyp.
  • Schreibweise: Klassen & Konstruktoren groß, alles andere klein (CamelCase).