ein Spezialfall, aber üblicherweise gleich zu verwenden, wie eine Variable mit elementarem Datentyp
Deklaration einer Variablen mit
elementarem Typ
int myInteger;
short myShort;
float myFloat;
double myDouble;
char myCharacter;
Zeichen
char
Wahrheitswerte
boolean
Referenz-/Objekttypen
Annotations:
beginnen mit einem Großbuchstaben
Spezialfall BOXING
um elementare Typen mit Funktionalität zu erweitern gibt es
Wrapper-Klassen, die diese Objekte 'einpacken'. Vorteil: man hat
plötzlich Zusatzfunktionen (Methoden) für die Typen zur Verfügung
dieses Boxing ermöglicht die Verwendung von elementaren
Datentypen in generischen Datentypen z.B. ArrayList
Java macht dieses Ein- und Auspacken zur rechten
Zeit automatisch... AUTOBOXING
eingebaute Wrapperklassen für
die elementaren Typen
sind jene Klassen die man selbst schreibt.
Klassen definieren einen neuen (Referenz-)typ.
Constructor
ein Konstruktor steuert die
Objekterzeugung bzw. leitet sie ein
heißt gleich wie die Klasse und hat
eventuelle Parameter
es kann mehrere Konstruktoren
geben, aber die Parameterliste muss
untershiedlich sien
quasi eine spezielle Methode,die man nur mit
vorangestellten new-Operator aufrufen kann.
Retourniert ein neues Objekt dieses Typs
Objekterzeugung = Instantiirung
Objektorientierung
Java ist eine Programmiersprache,die dieses
Objektorientierungskonzept unterstützt
basiert auf dem Zusammenspiel
verschiedener Objekte
Zusammenspiel wird durch
public-Methoden/Variablen möglich
= Nutzung fremder Eigenschaften/Ressourcen
= Methodenaufrufe auf fremden Objekten
Objekte werden zufolge einer Klasssendefinition erstellt,
'nach dem Schema das mit der Klasse definiert wurde'
Analogie zum Bauplan... Mit einem Haus-Plan (Klasse)
können mehrere gleiche Häuser (Objekt) gebaut werden
Objekterstellung/ Instantiierung mit new-Operator
Besipiel: Bruch myBruch = new Bruch (1,2)
Annotations:
damit wird das neu instantiierte (mit new) 'Bruch-Objekt' gleich in die Bruch-Variable myBruch gespeicher
jedes Objekt hat alle ( Eigenschaften,
Verhalten) was die Klasse vorgibt
static-Eigenschaften von Klassen
static Methoden
diese Methoden gehören zur Klasse. D.h. man ruft sie nicht auf
einem Objekt der Klasse auf, sondern direkt. D.h. man muss
nicht ein Objekt mit new erzeugen, um eine static Methode in
dieser Klasse auszuführen
static-Methoden führen Schen aus, die nicht unbedingt zu
einem bestimmten Objekt gehören; die eher allgemein für alle
Objekte dieser Klasse von Bedeutung sind
static-Methoden können nur static-Variablen verwenden,
bzw. die in ihnen deklarierten lokalen Variablen
static-Variablen
'static-Variablen gehören zur Klasse' Jedes Objekt dieser Klasse
besitzt nur ein und dueselbe Variable, nicht jedes eine eigene.
ändert eine Object eine Variable, so gilt das für jedes Objekt
in weiterer Einsatz von static-Variablen ist z.B. ein Zähler für
instantiierte Objekte einer Klasse... bei jeder Objekterzeugung der
Klasse Fahrzeug wird ein static int fahrzeugCounter inkrementiert
(dies passiert idealerweise im Constructor der Klasse). Dadurch ist
zu jedem Zeitpunkt schnell ersichtlich, wieviele Fahrzeuge derzeit
im Programm "herumfahren".
Javaprogramme sind hierarchisch strukturiert
ganz oben das 'Project'
Annotations:
quasi das Programm
Packages
Annotations:
Ordnerstruktur
'Classes' (Java Klassen)
Annotations:
SourceCode .java
Klassen sind die programmatische
Umsetzung/Abstraktion der
Problemstellung/der Umwelt
Umsetzung der Realität nur so weit wie nötig
diese beinhalten
Variablen
während der Ausführung von Methoden
Methodenvariablen = lokale Variablen
innerhalb von Methoden deklariert
definieren Zustand der Klasse / im Objekt
Klassenvariablen / Instanzvariablen
außerhalb von Methoden deklariert
nur sichtbar/benutzbar/ansprechbar innerhalb
des Blocks, in welchem sie deklariert werden
Methoden
definieren Verhalt en der Klasse
public static void main(Strg[] args)
Unified Modeling Language
UML
verschiedene Diagramme
Klassendiagramm (Struktur)
Aktivitätsdiagramme
Sequenzdiagramme
ermitteln schnell, was das Programm tun
können soll und wie es aufgebaut ist
zur Unterstützung der Findung des Programmkonzepts
visuell; schnell
aus dem UML-Diagramm lässt sich automatisch der
Code generieren