Zugriff: Klassenname.methodenname ( ) oder Klassenname.variablenname
Zugriff auf Objektmethoden
Objektmethoden: konkrete Interaktion mit Objekt
Zugriff: über ein konkretes Objekt
Objektname.methodenname (Parameter)
Konstruktor
Methode zur Initialisierung von Attributen
Aufruf: bei Erzeugung von Objekt mit new-Operator Name: wie Klasse Sichtbarkeit: public Rückgabetyp: keinen!
Können überladen werden
Default Konstruktor solange kein anderer implementiert wurde
parameterloser Konstruktor
parametrisierter Konstruktor
Konstruktor mit Übergabeparametern
(bei Objekterzeugung können Werte übergeben und sofort den Attributen zugewiesen werden)
Klasse kann mehrere Konstruktoren haben solange sie sich in Typ und Anzahl der Parameter unterschieden
Vererbung
erlaubt gemeinsame Attribute und Methoden den spezialisierten Klassen bereit zu stellen, wobei sie nur einmal geschrieben werden müssen
Superklasse private Attribute können nur indirekt über Methoden in der Superklasse, die nicht privat sind, verwendet werden
Subklassen Objekte beinhalten/speichern Attribute und Methoden der Super- und der Subklasse
Vererbung programmieren
Vererbung von Klassen mit ´extendsˋ
Alle Klassen, die kein extends enthalten, stammen von der Klasse ˋObjectˋ
--> alle Klassen erben direkt/indirekt von ˋObjektˋ
Überladen
mehrere Methoden mit selben Namen aber andere Anzahl an Parametern
Überschreiben
Methode neu definieren:
selber Name, selbe Rückgabetyp und gleiche Parameter. (nur Überschrieben in Klasse wo überschrieben wurde und allen zugehören Subklassen)
Superreferenz
für Zugriff auf überschriebene Methoden und Attribute (Anwendung auf die Superklasse)
--> ˋsuper´ funktioniert so ähnlich wie ˋthisˋ
parameterlosen Konstruktor aufrufen
Konstruktor der Superklasse kann nicht vererbt werden
Superreferenz bezieht sich auf ganze Superklasse.--> verwenden um Konstruktor aufzurufen
parametrisierten Konstruktor aufrufen
muss als erster Methodenaufruf im Subkonstruktor aufgerufen werden!
Polymorphie
Eigenschaft von Referenzvariablen (schiff) der Superklasse (Schiff), Objekte von Subklassen (Containerschiff) referenzieren zu können
--> anders herum geht nicht
Polymorphie casten
Polymorphie
= Eigenschaft von Referenzvariablen (schiff) der Superklasse (Schiff), Objekte von Subklassen (Containerschiff) referenzieren zu können
--> anders herum geht nicht
Da die Referenzvariable vom Typ der Superklasse ist, muss die Referenzvariable nach dem Objekt der Subklasse gecastet werden um Methoden der Subklasse aufrufen zu können
Instanceof
um Typ eines referenzierten / tatsächlichen Objekts festzustellen
Instance of Bsp
abstrakte Methoden
Es fehlen Methodenrümpfe ( wird in konkreter Methode, die abstrakte überschreibt, implementiert)
nicht privat
Abstrakt bis Methode in einer Subklasse implementiert wird, dann konkret
--> Vertrag der Superklasse mit Subklasse --> Klasse ist konkret wenn Methode erfüllt wird
abstrakte Klassen
erlauben es, Methoden vorzugeben, die von allen Subklassen realisiert werden müssen ( Attribute und andere Methoden können zusätzlich schon implementiert werden)
Klasse mit abstrakter Methode --> abstrakte Klasse --> keine Objekte von ihnen erzeugbar
Können auch konkrete Methoden/Attribute enthalten
solange nicht alle Verträge mit Subklassen erfüllt bleibt Klasse abstrakt
Interfaces Deklaration
definieren Schnittstellen in Form von Methoden um verschiedene Methoden miteinander zu verknüpfen (oft vergleichen) --> allgemeingültige Methoden schreiben
--> Klassen müssen gemeinsame Vererbungshierarchie haben
enthalten ausschließlich Methodendeklarationen
(Sichtbarkeit der Methode entspricht der des Interfaces )
Klasse, die das Interface implementiert, erbt alle Methodendeklarationen aus diesem Interface
Interface Implementierung
Ganzzahlendarstellung
byte/char
short
Int
long
Gleitkommadarstellung
float
Double
Vorteile der Zweierkomplementendarstellung
keine doppelte null
Operationen mit negativen Zahlen effizienter
Unterlauf
Ergebnis der Zweierkomplementendarstellungs Berechnung kleiner als kleinste darstellbare Wert eines bestimmten numerischen Datentyps
[1]0
Überlauf
Ergebnis der Zweierkomplementendarstellungs Berechnung größer als größter darstellbare Wert eines bestimmten numerischen Datentyps