Buffl

Java-Programmierung

SS
by Sascha S.

Wie lautet der Syntax einer Klasse?

public class ClassName {

// Felder

Type fieldName;


// Konstruktor

public ClassName(Type parameter) {

this.fieldName = parameter;

}


// Methoden

public returnType methodName(Type parameter) {

// Methodenkörper

}

}


→ eine Klasse kann mehrere Konstruktoren und Methoden haben!

, wobei

  • public: Dies ist der Zugriffsmodifikator. Es bestimmt, von wo aus auf die Klasse zugegriffen werden kann. public bedeutet, dass von überall auf die Klasse zugegriffen werden kann.

  • class: Dies ist das Schlüsselwort, das anzeigt, dass Sie eine Klasse deklarieren.

  • ClassName: Dies ist der Name der Klasse. Es folgt der Java-Konvention für Klassennamen, die besagt, dass Klassennamen in CamelCase geschrieben werden sollten.

  • Type: Dies ist der Datentyp des Feldes bzw. der Parameter und Rückgabewerte der Methoden. Es könnte ein primitiver Datentyp (wie int, char, double etc.) oder ein Objekttyp (wie String, Array, Scanner, eine andere Klasse, die Sie erstellt haben, usw.) sein.

  • fieldName: Dies ist der Name des Feldes.

  • public ClassName(): Dies ist der Konstruktor der Klasse, der verwendet wird, um eine Instanz der Klasse zu erstellen. Der Name des Konstruktors sollte immer genau dem Klassennamen entsprechen.

  • methodName: Dies ist der Name der Methode.

  • returnType: Dies ist der Datentyp des Werts, den die Methode zurückgibt. Wenn die Methode nichts zurückgibt, verwenden Sie das Schlüsselwort void.

  • // Methodenkörper: Hier schreiben Sie den Code, der ausgeführt wird, wenn die Methode aufgerufen wird.



Was sind Rekursive und Iterative Programme und wie lauten dessen Syntaxe?

Sowohl rekursive als auch iterative Programmstrukturen werden verwendet, um Aktionen wiederholt auszuführen. Der Hauptunterschied besteht darin, wie sie diese Wiederholung erreichen.

Rekursive Programme rufen sich selbst auf, um ein Problem zu lösen. Dies geschieht durch Aufteilung des Problems in kleinere, einfacher zu lösende Teilaufgaben. Ein Beispiel dafür ist die Berechnung der Fakultät einer Zahl n (notiert als n!). In Java sieht das so aus:


public static int factorial(int n) {

if (n == 0) { // Basisfall: 0! ist per Definition 1

return 1;

}

else { // Rekursiver Fall: n! = n * (n-1)!

return n * factorial(n - 1);

}

}


Iterative Programme verwenden Schleifenstrukturen wie for oder while, um Wiederholungen zu erreichen. Hier ist das gleiche Fakultätsproblem gelöst mit einer Iteration:


public static int factorial(int n) {

int result = 1;

for (int i = 1; i <= n; i++) {

result *= i;

}

return result;

}


In beiden Fällen berechnen die Funktionen die Fakultät einer gegebenen Zahl. Jedoch machen sie das auf unterschiedliche Art und Weise.

Rekursion kann leistungsfähiger und eleganter sein, vor allem wenn das Problem natürlich in kleinere Teile zerfällt (wie beim Merge-Sort-Algorithmus). Allerdings kann sie auch zu einer Stacküberlauf-Fehler (StackOverflowError) führen, wenn die Rekursionstiefe zu hoch wird, da jeder Funktionsaufruf Speicherplatz auf dem Stack benötigt.

Iteration ist in der Regel einfacher zu verstehen und kann effizienter sein, da es keinen zusätzlichen Stack-Speicher benötigt. Jedoch kann der Code unübersichtlicher und schwerer zu lesen sein, wenn das Problem nicht natürlich zu einer iterativen Lösung passt.

Author

Sascha S.

Information

Last changed