/media/sda-magnetic/david/Extern-Magnetic-2022-06-29/Extern01/Dokumente-2020-11-16/disk10-ab-2020-01-10/02-debian-pc2-work/informatik/java-new/java.txt


Objektorientierte Programmierung
Identität
Nachrichten
Methoden
Objektzustand
Attribut
Klasse
Klassifikation
abstrakte Klasse
Vererbung
Spezialisierung
Prozedur
statisches Binden
dynamisches Binden
Subtyping
Simula, Smalltalk

Objeke: objects
Werte: values
Basisdatentypen: byte, short, int, long, float, double, char, boolean
Konstante
Werte in Java
Objektreferenz
Zeiger
Typen in Java
Variablen
Elementtyp
Typkonstruktur
Array-Element 
Zuweisung 
Ausdruck
Typkonvertierung (cast)
Auswertung von Ausdrücken 
Klassenmethoden
Bytecode
virtuelle Maschine
main-Methode 
static 

public class Test {
    public static void main (String [] args) {
        //Anweisungsblock;
    }
}

System.out.println (Ausdruck);
System.out.print (Ausdruck);

Anweisungsblock

String s = "Hallo Welt";
int i;
System.out.println (i + " Mal " + s);

i.toString();

bedingte Anweisung 
Schleifenanweisung

for-each

break-Anweisung
return-Anweisung
normale und abrupte Terminierung von Ausdrücken 
try-Anweisung 
Ausnahmesituation 

try
    try-Block
catch (Ausnahme-Typ Bezeichner) catch-Block1
...
catch (Ausnahme-Typ Bezeichner) catch-Blockn
finally finally-Block

ArrayIndexOutOfBoundsException e
NumberFormatException e
ArithmeticExcpetion e

throw-Anweisung

Ausnahmebehandlung + Nachrichtenversand

Objekte 
Klassen 
Methoden 
Konstruktoren 

class Computer {
    String name;
    int MHz;
    
    Computer (String name; int MHz) {
        this.name = name;
        this.MHz = MHz;
    }
}

this
this-Object 
self-Object

formale Parameter 

Spezialisierung
Vererbung 
Subclassing
Überschreiben 
Subtyp 

Objekte 
Klassen 
Kapselung

objektbasierte Sprachen 

1. Klassenkonzept
2. Prototypkonzept

Klonen

Eigenschaft 
Verhalten 
aktueller Zustand 

Klasse 

lokale Variable 
Aliasing 

Klassendeklarationen
Attribute 
Objekte 


// Code

Modifikatorenliste class Klassenname {
    Liste von Attribut-, Konstruktor- und Methodendeklarationen
}

// Code

Klassentyp
Komponente 

objektlokale Variable 

Instanz
Instanziieren 
Instanzvariable

1. Methodendeklaration
2. Konstruktorendeklaration 

Methodendeklaration 

// Code 
Modifikatorenliste Ergebnistyp Methodenname (Parameterliste) throws-Deklarationen
//Code

implizieter Parameter 
formaler Parameter

// Code 
Modifikatorenliste Klassenname (Parameterliste) throws-Deklaration 
// Code

Default-Konstruktor 
new
Objekterzeugung 
Attributzugriff 
NullPointerException 
Konstruktoraufruf 

Methodenaufruf

Ausdruck.Methodenname (AktuelleParameterliste)

Schlüsselwort: static 

Initilasieren und Überladen 
Intialisierung von Variablen und Attributne 

Initialisierungsblöcke
statische Initialisierungsblöcke
nicht statische  Initialsierungsblöcke

Überladen von Methodennamen und Konstruktoren 

Klassenmethoden, beginnt mit Schlüsselwort static 
Klassenattribute, beginnt mit Schlüsselwort static

statische Fabrikmethoden, static factory methods 

Utility Class 

public static final double PI = ...
public static double sin(double a)
public static double pow(double a)

String: valueOf 

static String valueOf (long l)
static String valueOf (double d)
static String valueOf (String s)

Subklassen-Instanzen 
Modularisierung

Rekursive Klassendeklaration 
rekursiv 

Doppelt verkettete List 
Behälter, container 

class LinListNode {
    String val;
    LinListNode next;
    LinListNode prev;
    
    LinListNode (... Konstruktor)
}

class LinList {
    LinListNode head;

}

Kapselung und Strukturierung von Klassen 

Klasseninvarianten 

Geheimnisprinzip
Information Hiding

Kapselung: Es ist der äußeren Klasse nicht erlaubt auf alle Methoden der inneren Klassen zu zu greifen

Schlüsselwort: private 

Schnittstellenbildung

Strukturieren von Klassen 

Innere Klassen 
Statische Innere Klassen 
Nicht statische innere Klassen 

Strukturierung von Programmen: Pakete
Pakete 

Übersetzungseinheiten 

package Paketname;
Liste von import-Anweisungen
Liste von Typdeklarationen

lokale Variable 
Aliasing