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.


Fichier Détails

Cartes-fiches 500
Utilisateurs 19
Langue Deutsch
Catégorie Informatique
Niveau Université
Crée / Actualisé 04.12.2016 / 16.08.2024
Lien de web
https://card2brain.ch/box/java_objektorientiertes_programmieren
Intégrer
<iframe src="https://card2brain.ch/box/java_objektorientiertes_programmieren/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was ist Casting bei Datentypen?

Typumwandlung: Konvertierung eines Wertes von einem Typ zu einem Anderen

Erkläre Implizite Typumwandlung (Casting)

Java konvertiert den Wert direkt und automatisch bei einer normalen Zuweisung, z.B. long wert = 100;

Erkläre Explizite Typumwandlung (Casting)

Wir geben Java explizit den Befehl, in welchen Typ etwas konvertiert werden soll, z.B. long wert = (long) 100;

Welche Casting sind implizit möglich?

siehe Bild

Welche Casting sind möglich? (Genauigkeitsverlust vernachlässigt)

Welche Casting sind möglich? (Genauigkeitsverlust vernachlässigt)

Welche Casting sind möglich? (Genauigkeitsverlust vernachlässigt)

Gibt dies das zu erwartende Resultat 2.5?

siehe Bild

Gibt dies das zu erwartende Resultat 2.5?

int i1 = 5;
int i2 = 2;

float f = (float) i1 / i2; oder
float f = i1 / (float) i2;

Fliesskommazahlen nach Ganzzahlen zu casten ist bedenkenlos

Zu grosse Werte in zu kleine Datentypen zu casten ist bedenkenlos

Wie sieht der Aufbau eines if/else-Statements aus?

siehe Bild

- Bedingung (expression) muss ein boolsches Resultat haben

- Bedingung wird in Klammern (..) eingefasst

- Auch wenn in einem Anweisungsblock {...} nur ein einziges Statement steht, verwendet man trotzdem immer die geschweiften Klammern

- Das else-Statement ist optional!

Was bedeutet < ?

kleiner als

Was bedeutet == ?

gleich (identisch)

Was bedeutet > ?

grösser als

Was bedeutet <= ?

kleiner oder gleich als

Was bedeutet != ?

ungleich (nicht identisch)

Was bedeutet >= ?

grösser oder gleich als

Was für einen Datentyp wird dieser Ausdruck retournieren?

(x == 5)

Welches sind die wichtigsten logischen Operatoren?

&& (UND)
|| (ODER
^ (EXKLUSIV-OR)
! (NEGATION, NOT)

Wenn man eine Variable/Parameter vom Typ boolean hat, kann man dies bei der Bedingung im if-Statement einsetzten:

boolean isSwitchedOn = true;

if(isOn) {

}

Man muss die Bedungen bei if-Statements so klar und einfach wie möglich formulieren

Der normale oder den häufigeren Fall im then-Zweig anstatt im else-Zweig implementieren macht weniger Sinn

Was ist die Problematik von if-Statements?

Bei logisch etwas komplexeren Abläufen treten if-Statement sehr schnell ineinander verschachtelt auf. Schon ab drei Einrückungsebenen empfindet man den Code als sehr unübersichtlich.

Welche Möglichkeiten hat man, um tiefe Verschachtelungen bei if-Statements zu verhindern?

- In dem man tief verschachtelte if-Statements in eigenständige Methoden auslager, die man dann aufruft

- mit else-if-Statements

- mit switch-Statements

Wie sind else-if-Statements aufgebaut?

siehe Bild

Was ist der Vorteil eines else-if-Statements?

Kann in manchen Fällen deutlich übersichtlicher sein

Was ist der Nachteil eines else-if-Statements?

Nur bei voneinander unabhängig formulierten Optionen möglich

Was ist der Unterschied eines switch-Statements zu einem if-Statement?

Das switch-Statement beschränkt sich auf den Vergleich von absoluten Werten (keine Bedingung)

Was ist ein Nachteil eines switch-Statements?

Es funktioniert nur mit einer eingeschränkten Menge von Datentypen:

- Primitive: byte, short, char, int (ohne long!)
- Klassen: String und Enumerations-Typen

Somit nur geeignet für einfache Fallunterscheidungen auf Basis von einzelnen Werten

Wie sind switch-Statements aufgebaut?

siehe Bild

break; immer nötig um das Ende des auszuführenden Blocks zu deklarieren!

switch-Statements so oft wie möglich verwenden

switch-Statements zurückhaltend einsetzen, weil es produziert sehr schnell viel Code

Welche drei verschiedene Schleifen-Anweisungen für unterschiedliche Zwecke und Nutzungen kennt Java?

- while-Schleife (Eingangstest)
- do-while-Schleife (Ausgangstest)
- for-Schleife (Eingangstest)

Jede Iteration kann mit jeder Art von Schleife formuliert werden

Die drei Schleifentypen können sich nicht gegenseitig ersetzen

Die drei Schleifentypen können sich gegenseitig ersetzen

Wie ist eine while-Schleife aufgebaut?

siehe Bild

Die Bedingung muss ein boolsches Resultat ergeben (wie bei if-Statements).

Häufig werden in der Bedingung Variablen genutzt, deren Inhalt innerhalb des Schleifenkörpers verändert wird.

Evaluiert die Bedingung beim Eintritt in die Schleife bereits auf false, wird der Schleifenkörper nie ausgeführt!

Bei welcher Schleife (Iteration) wird der Schleifenkörper nie ausgeführt, falls die Bedingung false ist?

while-Schleife

Die Anzahl Schleifendurchläufe ist in der Regel bei einer while-Schleife (mindestens zum Zeitpunkt der Implementation) bekannt