JAVA & Objektorientiertes Programmieren

Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.

Eine Einführung in das objektorientierte Programmieren mit JAVA Diese Kartei baut auf dem Stoff des Moduls OOP an der HSLU geleitet von Roland Gisler auf.


Kartei Details

Karten 500
Lernende 19
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 04.12.2016 / 16.08.2024
Weblink
https://card2brain.ch/box/java_objektorientiertes_programmieren
Einbinden
<iframe src="https://card2brain.ch/box/java_objektorientiertes_programmieren/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Wie sieht der Aufbau einer Methode in Java aus?

Zugriffsmodifizierer (public, private, etc.), Rückgabewert (void, String, int, etc.), Name

siehe Bild

Was sind Eigenschaften einer Methode?

- Zugriffsmodifizierer häufig public oder private

- spezieller Rückgabetyp void möglich, d.h. kein Rückgabewert

- kann auch keine Parameter besitzen

- Innerhalb derselben Klasse müssen alle Methoden in ihrer Signatur unterschiedlich sein!
--> unterschiedliche Methodennamen, oder Parameter mit unterschiedlichen Datentypen, oder unterschiedliche Anzahl Paramter

Können zwei Methoden denselben Namen besitzen?

Ja, wenn ihre Parameter unterschiedliche Datentypen besitzen oder sie eine unterschiedliche Anzahl Parameter haben!

Wie sieht die Implementation einer Methode aus?

siehe Bild

Was sind Eigenschaften des Methodenrumpfs?

- Eigentliche Implementation der Methode {...}, d.h. Block nach Methodenkopf

- beinhaltet Deklarationen und Anweisungen

- Anweisungen können ihrerseits wieder Blöcke beinhalten

- Innerhalb eines Blocks werden Deklarationen und Anweisungen durch Semikolon (;) voneinander getrennt

- Der Rückgabewert wird (falls nicht void) mittels return ... ; zurückgegeben

- Ein return beendet unmittelbar die Ausführung einer Methode; es darf danach keine unerreichbaren Anweisungen mehr geben!

Wie deklariert man lokale Variablen?

Im Methodenrumpf (oder Konstruktorrumpf) und wie folgt: siehe Bild

Merke: Lokale Variablen sind ab der Zeile ihrer Deklaration bis zum Ende ihres umfassenden Blockes sichtbar.

Was sind Merkmale und Eigenschaften von lokalen Variablen?

- Werden innerhalb einer Methode bzw. eines Blocks deklariert.

- Müssen explizit mit Werten initialisiert werden! (im Gegensatz zu Attributen nicht automatisch)

- nur während der Ausführung des entsprechenden Blocks existent und sichtbar

- Erfordern intern Speicherplatz auf dem Call-Stack

Wie sieht die Deklaration von formalen Methodenparametern aus?

siehe Bild

Was kann man machen damit formalen Parametern keine neuen Werte im Ausführungsblock zugewiesen werden kann?

als final markieren

z.B. (final String house, final int houseNumber)

Sind Parameter ausserhalb einer Methode sichtbar?

Was sind die Merkmale und Eigenschaften der Parameter?

- Formale Parameter werden im Kopf einer Methode (oder eines Konstruktors) deklariert

- Beim Aufrug der Methode/des Konstruktors müssen Initialisierungswerte übergeben werden

- Wichtig: Variablenwerte werden bei der Übergabe immer kopiert (call-by-value, Speicherplatz auf Call-Stack)

- Sind nur während der Ausführung der Methode / des Konstruktors existent und nur innerhalb der Methode / des Konstruktors sichtbar

- Über die aktuellen Parameter lässt sich das Verhalten von Methoden steuern

Was ist der Unterschied zwischen formalen und aktuellen Parametern?

siehe Bild

Was sind die Merkmale von Rückgabewerten?

- return funktioniert auch mit Ausdrücken (return (a+7))

- mit void wird kein Rückgabewert zurückgegeben

- eine Methode kann mit return höchsten einen Wert zurückliefern

- man kann bei Java eine Methode mit Rückgabewert aufrufen, ohne den Rückgabewert entgegen zu nehmen!

- Methoden mit Rückgabewert sind in der Regel besser lesbar, wenn das return einzig in der letzten Anweisung vorkommt!

Variablen eines elementaren Datentyps enthalten jeweils mehrere Werte

Variablen eines elementaren Datentyps enthalten jeweils nur einen einzigen Wert

Der Computer speichert alle Werte (Zahlen, Zeichen, etc.) als "Bitmuster" (Folge von 1 und 0) ab

Mit einem Datentyp wird beschrieben, wie dieses Muster interpretiert wird und welcher Wertebereich damit möglich ist

Jeder Datentyp legt implizit fest, welche Operationen möglich sind, bzw. wie diese ausgeführt werden

Datentypen legen die Genauigkeit durch die explizite Angabe des Wertebereichs fest

Jeder Datentyp legt implizit auch eine Genauigkeit fest

An welchen Stellen können elementare Datentypen eingesetzt werden?

An welchen Stellen können elementare Datentypen eingesetzt werden?

Überall, wo ein Typ (Klasse) verlangt ist, kann häufig auch ein elementarer Datentyp verwendet werden

Überall, wo ein Typ (Klasse) verlangt ist, kann nie ein elementarer Datentyp verwendet werden

Warum ist nicht alles konsequent ein Objekt bzw. eine Klasse?

Tatsächlich brechen mit den elementaren Datentypen einige Programmiersprachen Grundprinzipien der Objektorientierung zugunsten von Einfachheit und Effizienz

Welche primitiven Datentypen gibt es für ganze Zahlen?

byte, short, int, long

(siehe Bild)

Ganze Zahlen werden in Java implizit per Default als byte betrachtet

Was ist der Hauptvorteil von byte und short als Datentypen?

Sie können besonders bei grossen Datenmengen viel Platz sparen

Da wir heute über viel Speicher verfügen, lohnt sich eine seriöse Auswahl des geeigneten Datentyps nicht (z.B. byte statt int)

Welche Datentypen gibt es für Gleitkommazahlen?

float und double

ohne explizite Angabe werden Gleitkommazahlen in Java per Default als double betrachtet

Auf wieviele Stellen ist ein float? (Daumenregel)

auf 7 Stellen

Auf wieviele Stellen ist ein double genau?

auf 14 Stellen

String ist ein primitiver Datentyp

boolean ist ein primitiver Datentyp

char ist kein primitiver Datentyp

Was sind die Eigenschaften von char?

Ein char enthält genau ein Zeichen und wird mit einfachen Anführungszeichen (') eingefasst.

- Beispiel: char c = 'A';
- Nicht verwechseln mit Strings, das sind Zeichenketten!

Bei den Ganzzahltypen (z.B. long) kann jeder mögliche Wert des jeweiligen Wertebereiches präzise abgebildet werden

Kann 2'000'000.05 als float präzise abgebildet werden?

Können Strings wie folgt aneinander gereit werden?

word = "Weihnacht" + "s" + "mann";

String ist in Java kein elementarer Datentyp, sondern eine Klasse/Objekt