/media/sda-magnetic/david/Dok-15-2023-11-27/fernuni-hagen/cs-i-ii/old-cs-2-03/java-new/java4.txt


Objektorientierte Programmierung
objektbasierte Sprachen 

I.) Theorie
- Klassifikation
- Subclassing
- Spezialisierung
- Modularisierung
- Kapselung: Es ist der äußeren Klasse nicht erlaubt auf alle Methoden der inneren Klassen zu zu greifen
- Strukturierung, Strukturieren von Klassen 
- Klassenkonzept, Prototypkonzept
- Klasseninvarianten 
- Geheimnisprinzip = Information Hiding
- Schnittstellenbildung
- Objektzustand
- Behälter, container 
- Identität
- Eigenschaft 
- Verhalten 
- aktueller Zustand 
- Klonen


1. Typ
2. Variablen
3. Konstante
4. Werte: values
5. Klasse
6. Objekt, objects 
7. Zeiger
8. Arrays 
9. Schlüsselworte
10. Programmblöcke
11. Übersetzen 
12. statische Fabrikmethoden, static factory methods 



II.) Begriffe direket aus der Programmierung
1. Typ
1.1. Elementtyp 
1.2. Basisdatentypen: byte, short, int, long, float, double, char, boolean
2. Variablen
3. Konstante
4. Werte: values
5. Klasse
5.1. Klassentyp
5.2. abstrakte Klasse
5.3. Subclass, Vererbung
5.3.1. Subclass = Subtyp ^= Subtyping
5.3.2. Vererbung
5.4. Innere Klassen 
5.4.1. Statische Innere Klassen 
5.4.2. Nicht statische innere Klassen 
5.5. Member, Komponente 
5.5.1. Überschreiben 
5.5.2. Attribut
5.5.2.1. Attributzugriff 
5.5.3. Methode, Nachrichten, Klassenmethoden, Prozedur
5.5.3.1. Methodenaufruf
5.5.3.1.1. implizieter Parameter 
5.5.3.2. main-Methode 
5.5.3.3. formale Parameter 
5.5.3.4. Methodendeklaration
5.5.4. Konstruktoren 
5.5.4.1. Default-Konstruktor 
5.5.4.2. Konstruktorendeklaration 
5.5.4.3. Konstruktoraufruf 
5.5.4.3.1. implizieter Parameter 
5.5.4.4. formale Parameter 
5.5.4.5. Typkonstruktur
5.5.5. Überladen von Methodennamen und Konstruktoren 
5.5.5.1. Initilasieren und Überladen 
5.6. Intialisierung von Variablen und Attributne 
5.6.1. Initialisierungsblöcke
5.6.2. statische Initialisierungsblöcke
5.6.3. nicht statische  Initialsierungsblöcke
6. Objekt, objects 
6.1. Instanz, Instanziieren 
6.2. Instanzvariable
6.3. lokale Variable, objektlokale Variable 
6.4. Objekterzeugung 
6.5. Subklassen-Instanzen 
6.6. Rekursive Klassendeklaration, rekursiv, Doppelt verkettete List 
7. Zeiger
7.1. Objektreferenz
7.2. this
7.2.1. this-Object = self-Object
8. Arrays 
8.1. Array-Element 
9. Schlüsselworte
9.1. Schlüsselwort: static 
9.2. Schlüsselwort: private
9.3. Klassenmethoden, beginnt mit Schlüsselwort static 
9.4. Klassenattribute, beginnt mit Schlüsselwort static
10. Programmblöcke
10.1. Anweisungsblock
10.2. Ausdrücken 
10.2.1. Zuweisung 
10.2.2. Ausdruck
10.2.3. Ausdruck.Methodenname (AktuelleParameterliste)
10.2.4. Typkonvertierung (cast)
10.2.5. Auswertung von Ausdrücken 
10.2.6. bedingte Anweisung 
10.2.7. Schleifenanweisung
10.2.8. for-each
10.2.9. break-Anweisung
10.2.10. return-Anweisung
10.2.11. normale und abrupte Terminierung von Ausdrücken 
10.2.12. Ausnahmesituation 
10.2.12.1. Ausnahmesituation  
10.2.12.2. try-Anweisung 
10.2.12.3. throw-Anweisung
10.2.12.4. Ausnahmebehandlung + Nachrichtenversand
11. Übersetzen 
11.1. statisches Binden <> dynamisches Binden
11.2. Bytecode
11.3. virtuelle Maschine
11.4. Übersetzungseinheiten 
11.5. package Paketname;
11.5.1. Strukturierung von Programmen: Pakete
11.5.2. Liste von import-Anweisungen
11.5.3. Liste von Typdeklarationen
12. statische Fabrikmethoden, static factory methods 
12.1. Utility Class 



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

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

i.toString();

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

ArrayIndexOutOfBoundsException 
NumberFormatException 
ArithmeticExcpetion 
NullPointerException 

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

Modifikatorenliste Ergebnistyp Methodenname (Parameterliste) throws-Deklarationen

Modifikatorenliste Klassenname (Parameterliste) throws-Deklaration