IOBP 1

Grundlagen der objektorientierten Programmierung. (IUBH-Fernstudium)

Grundlagen der objektorientierten Programmierung. (IUBH-Fernstudium)


Kartei Details

Karten 106
Sprache Deutsch
Kategorie Informatik
Stufe Universität
Erstellt / Aktualisiert 18.12.2015 / 27.08.2022
Weblink
https://card2brain.ch/box/iobp_1
Einbinden
<iframe src="https://card2brain.ch/box/iobp_1/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Mindestens benötigte Elemente zur Erstellung eine Klasse?

  • Sichtbarkeitsmodifikator
  • Schlüsselwort \(class\)
  • der Name der Klasse und
  • ein Paar geschweifte Klammern.

Mindestens benötigte Elemente für ein Attribut in Java?

  • Sichtbarkeitsmodifikator
  • Datentyp und
  • Attributname

Defaultwert?

Ein Wert der einem Attribut automatisch bei der Erzeugung eines Objekts zugewiesen wird.

Prinzip der Datenkapselung?

Ein Objekt darf niemals auf die Attribute eines anderen Objekts direkt zugreifen. Das Lesen und ändern darf nur durch Methoden möglich sein.

Elemente die zur Implementierung einer Methode mindestens benötigt werden?

  • Sichtbarkeitsmodifikator
  • Rückgabe-Datentyp der Methode
  • Methodenname
  • Parameterliste
  • Methodenrumpf

Signatur im Bezug auf Methoden?

Identifiziert eine Methode eindeutig. Sie besteht aus dem Namen der Methode und der Parameterliste. Der Rückgabedatentyp gehört nicht dazu. Eine Signatur darf innerhalb einer Klasse nur einmal vorkommen, damit eindeutig feststeht welche Methode aufgerufen und abgearbeitet werden soll.

Getter- und Setter-Methoden?

Dies sind spezielle Methoden, die zum  Lesen und Ändern von Attributen eingesetzt werden. Sie unetrstützen beim Umsetzen des Prinzips des Datenkapselung.

  • Get: Liefert den Wert eines Attributs zurück.
  • Set: Änder den Wert des Attrbuts auf den Wert, der als Parameter der Setter-Methode übergeben wird.

Überladen von Methoden?

Das Überladen von Methoden eröffnet die Möglichkeit durch die Implementierung unterschiedlicher Methoden mit dem gleichen Namen, unterschiedliches Verhalten in Abhängigkeit von den gegebenen Parametern zu definieren.

main-Methode?

Der sogenannte Startprunkt eines Java-Programms. Diese Methode wird als erste aufgerufen, in ihr startet die Erzeugung alles benötigten Objekte.

Sie sollte folgende Elemente enthalten:

  • Sichtbarkeitsmodifikator
  • Deklaration als statische Methode (static)
  • Festlegung, dass es keinen Rückgabetyp gibt (void)
  • der Name der Methode (main), sowie die
  • Parameterliste (String args[])

primitive Datentypen?

Datentypen deren Werte keine Objekte sind. z.B. einfache Zahlen oder Wahrheitswert und einzelne Zeichen.

Datentyp für  Wahrheitswerte?

boolean

true oder false

Datentypen für ganze Zahlen?

byte

8Bit: -128 bis 127

short

16Bit: -32.768 bis 32.767

int

32Bit: -2.147.483.648 bis 2.147.483.647

long

64Bit: -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807

Datentypen für Fließkommazahlen?

float

32Bit: 1,40239846*10-45 bis 3,40282347*1038

double

64Bit: 4,9406564584146544*10-324 bis 1,79769131486231570*10308

Datentyp für einzelne Zeichen?

char

Datentyp zur Speicherung von Zeichenketten?

String.

String ist kein primitiver Datentyp, sondern wird durch eine eigene Java-Klasse beschrieben.

Variablen?

Ähnlich einem Attribut, Existiert jedoch nur innerhalb eines Methodenrumpfs. Zur Deklaration einer Variablen müssen Datentyp und der Name festgelegt werden, im Vergleich zu einem Attribut wird kein Sichbarkeitsmodifikator benötigt..

Arithmetische Operatoren?

Dienen zur Ausführiung von mathematischen Funktionen, z.B.:

++. +, --, -, /, * %

Logische Operatoren?

Dienen zur Ausführung von logischen Funktionen, z.B.:

!( Negation), && (Logisches UND), || (logisches ODER), ^ (exklusives ODER)

Vergleichsoperatoren?

Dienen zur Ausführung von Funktionen zum Vergleich von Werten und Objektreferenzen, z.B.:

  • == (true bei Gleichheit)
  • != (true bei Ungleichheit)
  • < (true wenn kleiner als)
  • <= (true wenn kleiner oder gleich)
  • >
  • >=
  • instanceof (true wenn beide Operanden den gleichen Datentypen entsprechen.)

Prüfoperatoren?

Sind die Vergleichoperatoren zur Prüfung von Gleichheit und Ungleichheit. Die Operanden legen fest ob werte oder Referenzen verglichen werden.

Bei primitiven Datentypen werden die tatsächlichen Werte verglichen, werden Referenzdatentypen verglichen wird nur verglichen ob auf das selbe Objekt referenziert wird, nur in diesem Fall liefert das Ergebnis des Vergleichs true zurück.

String-Konkatenation?

Eine Funktion des Datentyps String, die aus zwei gegebenen Zeichenketten durch einfaches Aneinanderreihen eine neue Zeichenkette erzeugt. Der verwendete Operator ist das Plus-Zeichen (+).

Kontrollstrukturen?

Ermöglichen das kontrollierte wiederholte Ausführen von Anweisungen. Die wichtigsten Kontrollstrukturen in Java sind:

  • bedingte Verzweigungen (if-else) und
  • Schleifen (for, while, do-while)

Bedingte Verzweigung?

Eine Kontrollstruktur um die Ausführung von Anweisungen von Bedingungen abhängig zu machen. (if-else-Verzweigung)

Erweiterte if-else-Verzweigung?

Eine Kontrollstruktur um die Ausführung von Anweisungen von mehreren, sich gegenseitig auschließenden Bedingungen, abhängig zu machen.

 

if (Bedingung1) {

   Anweisung1;

}

else if (Bedingung2) {

   Anweisung2;

}

else {

   Anweisung3;

}

Schleifen?

Kontrollstrukturen die es ermöglichen eine Anweisung mehrfach hintereinander auszuführen. Die Anzahl der Durchläufe wird durch die Einhaltung einer Schleifenbedingung bestimmt. Es gibt grundsätzlich 3 unetrschiedliche Schleifenarten:

  • While-Schleife
  • Do-while-Schleife und
  • For-Schleife.

while-Schleife?

Kopfgesteuerte Schleife, bei der die Bedingung vor jeder Ausführung der Anweisung geprüft wird. Sie wird ssolange ausgeführt bis die Bedingung zu false ausgewertet wird. Danach wird  nach der Schleife weiter gemacht. Sie hat die folgende Form:

while (Bedingung) {

   Anweisungen;

}

do-while-Schleife?

Eine fußgesteuerte Schleife, deren Anweisungen mindestens ein mal ausgeführt werden, weil die Prüfung der Bedingung erst am Ende steht und somit das erste mal vor der zweiten Durchführung geprüft wird. Sie hat die flgende Struktur:

do {

   Anweisungen;

} while (Bedingung)

for-Schleife?

Eine kopfgesteuerte Schleife, deren Kopf neben der Bedingung auch die Anweisung zur Initialisierung der Zählvariablen und der Weiterschaltung enthält. Ihr Ablaufschema kann wie folgt beschrieben werden:

  1. Ausführen der Anweisung der Initialisierung
  2. Prüfung der Bedingung
  3. Auswerten der Bedingung
    • Wenn Bedingung \(true\): Ausführung aller Anweisungen der for-Schleife
    • Wenn Bedingung \(false\): Abbruch und keine Ausführung der Anweisungen
  4. Ausführen der Anweisung der Schleifenfortschaltung
  5. Weiter mit Punkt 2 (Prüfen der Bedingung)

Ihre Struktur sieht folgendermaßen aus:

for (Initialisierung; Bedingung; Schleifenfortschaltung) {

   Anweisungen;

}

Pakete in Java?

Ein Paket ist ein Element zur Strukturierung der Java-Klassen eines Entwicklungsprojekts. Java-Klassen werden Paketen zugeordnet. Pakete können selber auch Pakete enthalten.

Der für die Laufzeitumgebung vollständige Name einer Klasse (qualifizierter Name) ergibt sich aus dem Paket der Klasse und dem Namen der Klasse. (z.B.: onlineshop.nutzer.Kunde)

 

Die Angabe des Pakets steht in der Klasse über der Definition der Klasse und sieht wie folgt aus:

"package paket..unterpaket;"

Sichtbarkeitsmodifikatoren?

Sind Elemente von Java, mit denen die Sichtbarkeit von Attributen, Klassen und Methoden gegenüber anderen Klassen und Paketen eingestellt werden kann. Es gibt die folgenden vier Möglichkeiten:

  • public:
    • Das Element ist für alle Klassen des Programms sichtbar.
  • [nichts]:
    • Das Element ist nur im gleichen Paket sichtbar.
  • protected:
    • Das Element ist nur im gleichen Paket oder abgeleiteten Klassen sichtbar.
  • private
    • Das Element ist nur für Elemente der gleichen Klasse sichtbar.

Ist ein/e-Beziehung?

Drückt aus dass eine Klasse eine spezielle Art einer anderen Klasse ist.

Oberklasse?

Ist ein Klasse von der andere Klassen abgeleitet werden. Sprich es gibt Unterklassen die die Attribute und Methoden von einer Oberklasse erben, und diese Oberklasse spezialisieren.

Unterklasse?

Leitet sich von einer Oberklasse ab, erbt deren Attribute und Methoden und spezialisiert sie weiter durch zusätzliche Attribute und Methoden.

Vererbung und deren Vorteile?

Unterklassen erben Attribute und Methoden von Oberklassen. Dadurch lassen sich Ähnlichkeiten bei Klasse in Oberklassen zusammenfassen und reduziert damit Wiederholungen im Entwurf.

Desweiteren werden auch Verhalten und Verwendung von der Oberklasse an die Unterklassen vererbt. Sie besitzen alle die gleichen Beziehungen wie ihre Oberklasse.

Erweiterung?

Begrifflichkeit für Vererbung in Java. Eine Unterklasse spezialisiert ihre Oberklasse durch neue und angepasste Funktionen.

Zuweisungskompatibilität?

Erlaubt einer Variable vom Typ der Oberklasse auch Unterklassenobjekte zuzuweisen, da jedes Objekt der Oberklasse auch eines der Unterklasse sein kann. Andersrum ist dies nicht möglich, da nicht jedes Objekt der Unterklasse einem Objekt der Oberklasse entspricht.

Überschreiben bei Vererbung?

Das erneute Implementieren von geerbten Methoden, um so eventuelle lückenhafte Ausgaben, weil die Attribute der Unterklasse nicht bekannt waren, zu vermeiden. Zur Überschreibung muss einfach eine Methode mit der gleichen Signatur implementiert werden, die einen neuen Methodenrumpf enthält.

Möchte man dennoch auf die ursprünglich vererbte Methode zugreifen, so ist dies mit dem Schlüsselwort "super" möglich.

Schlüsselwort "super"?

Mit dem Schlüsselwort super können Methoden aus der Oberklasse aufgerufen werden, auch wenn Siie in der Unterklasse überschrieben worden. super kann genutzt werden um Implementierungen aus der Oberklasse zu erweitern.

Abstrakte Klasse?

Eine abstrakte Klasse diehtn vornehmlich der Modellierung und Strukturierung eines entstehenden Systems. Sie fasst Gemeinsamkeiten und Schnittstellen zusammen, die von ihren abgeleiteten Klassen erfüllt werden müssen.

Von einer abstrakten Klasse dürfen keine Instanzen erzeugt werden. Sie diesen lediglich dazu ihre Unterklassen auf eine konsistente Art und Weise zu erzeugen.

Abstrakte Methoden?

Eine Methode mit einer Signatur, aber ohne Methodenrumpf (Sie darf keinen Methodenrumpf haben!). Sie dient als Vorgabe, welche Funktionalität in Unterklassen implementiert werden muss! Es ist nicht zulässig die abstrakte Methode in der Unterklasse auszulassen.

Die Implementierung findet durch Überschreibung in den Unterklassen statt. Abstrakte Methoden dürfen nur in abstrakten Klassen vorkommen, da eine reguläre Klasse mit einer abstrakten Methode unvollständig wäre.