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.
Die wichtigsten Datentypen in Java
Schritt 6
Aufgabe 1 – Fachbegriffe
Prüfe, ob du die zentralen Begriffe sicher beherrschst.
Quiz: Fachbegriffe der Klassendefinition
1.Wie nennt man die Zeile, in der das Schlüsselwort class und der Klassenname stehen?
2.Welcher Bereich wird durch { und } eingerahmt und enthält Attribute und Methoden?
3.Mit welchem Schlüsselwort beginnt jede Klassendefinition in Java?
4.Wie sieht die Deklaration eines Attributs in Java aus?
5.Welche Schreibweise gilt für Klassennamen in Java?
6.Welche Aussagen über den Datentyp boolean sind richtig?
7.Welcher Datentyp passt zum Attribut 'alter' einer Person?
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.
class Auto {
String hersteller;
int ps;
double verbrauch;
}- 1
class Auto {hier ablegen … - 2
Autohier ablegen … - 3
{ ... }hier ablegen … - 4
String hersteller;hier ablegen … - 5
Stringhier ablegen … - 6
herstellerhier 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.
Auto {
hersteller;
ps;
verbrauch;
}3b – Klasse Schueler
Auch der Klassenname fehlt.
class {
name;
vorname;
alter;
note;
}3c – Klasse Buch
Achte auf die geschweiften Klammern und das Schlüsselwort.
Buch
titel;
autor;
seitenzahl;
ausgeliehen;
3d – Klasse Roboter
Mehrere Datentypen fehlen – nutze die Attributnamen als Hinweis.
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
Eine Person hat Name (Text), Vorname (Text), Alter (ganze Zahl), Geschlecht (einzelner Buchstabe) und PLZ (ganze Zahl).
class Person {}4b – Klasse Konto
Ein Bankkonto hat eine Kontonummer (ganze Zahl), einen Inhaber (Text), einen Saldo (Dezimalzahl) und die Information, ob es gesperrt ist (Wahrheitswert).
class Konto {}4c – Klasse Fahrrad
Ein Fahrrad hat einen Hersteller (Text), eine Rahmengröße (Dezimalzahl), eine Gangzahl (ganze Zahl), eine Farbe (Text) und ein Schloss (Wahrheitswert: vorhanden?).
class Fahrrad {}4d – Klasse Smartphone
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 {}4e – Klasse Hund
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 {}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
Class auto {
string hersteller;
int ps
double verbrauch;
}5b – Fehlende Klammern
class Buch String titel; String autor; int seiten; }
5c – Falsche Datentypen
class Konto {
int inhaber;
String saldo;
int gesperrt;
}5d – Mehrere kleine Schludrigkeiten
class person {
String Name;
string vorname
double alter;
}5e – Fehlende Klammer am Ende
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.
void nameSetzen(String n) {
this.name = n;
}- 1
void nameSetzen(String n)hier ablegen … - 2
voidhier ablegen … - 3
nameSetzenhier ablegen … - 4
String nhier ablegen … - 5
{ this.name = n; }hier ablegen … - 6
this.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.
nameAusgeben()
System.out.println(name);
}7b – Methode alterSetzen
Ergänze den Parametertyp und das Schlüsselwort.
void alterSetzen( a) {
.alter = a;
}7c – Methode beideNamenSetzen
Ergänze die fehlenden Datentypen.
void beideNamenSetzen( n, vn) {
this.name = n;
this.vorname = vn;
}Aufgabe 8 – Fehler in einer Methode
8a – Fehlerhafte Methode
Void NameAusgeben() {
System.out.println(name)
}8b – Methode mit falschem Parameter
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.
Person(String n, int a) {
this.name = n;
this.alter = a;
}- 1
Person(String n, int a)hier ablegen … - 2
Personhier ablegen … - 3
String n, int ahier ablegen … - 4
{ ... }hier ablegen … - 5
thishier 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.
class Auto {
String hersteller;
int ps;
() {
this.hersteller = "unbekannt";
this.ps = 0;
}
}10b – Konstruktor mit Parametern
Achte auf Datentypen und this.
Person( n, a) {
.name = n;
.alter = a;
}10c – Konstruktor ohne Rückgabetyp
Achtung: Konstruktoren haben **keinen** Rückgabetyp – auch nicht void!
class Konto {
int nummer;
double saldo;
( n, s) {
this.nummer = n;
this.saldo = s;
}
}Aufgabe 11 – Fehler im Konstruktor
11a – Konstruktor mit Rückgabetyp
class Person {
String name;
void Person(String n) {
this.name = n;
}
}11b – Falscher Konstruktorname
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).