LU05.A12 - Wissenstransfer zu Java und JavaScript
Transferieren Sie Ihre Kenntnisse der in LU05 erarbeiteten Python-Features in die Programmiersprachen Java und/oder JavaScript.
Aufgabenstellung
Ihr Ziel ist es, die in LU05 erarbeiteten Konzepte (Verwendung von *args
und **kwargs
, innere und äußere Funktionen, Closures, Decorators) in einer anderen Programmiersprache (Java oder JavaScript) anzuwenden.
- Wählen Sie mindestens drei der in LU05 behandelten Konzepte aus.
- Implementieren Sie diese Konzepte in Java und/oder JavaScript.
- Vergleichen Sie die Implementierung mit der Python-Version und dokumentieren Sie etwaige Unterschiede und Ähnlichkeiten.
Java-Beispiele
Variadic Functions (Äquivalent zu *args in Python):
public static void printNumbers(int... numbers) { for (int number : numbers) { System.out.print(number + " "); } }
Innere Klassen (Äquivalent zu inneren Funktionen in Python):
public class OuterClass { class InnerClass { // ... } }
Annotations (Äquivalent zu Decorators in Python):
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MyDecorator { String value(); } public class MyClass { @MyDecorator("Hello, world!") public void myMethod() { // ... } }
JavaScript-Beispiele
Rest Parameters (Äquivalent zu *args in Python):
function printNumbers(...numbers) { console.log(numbers); }
Closures:
function outer() { let x = 10; function inner() { console.log(x); } return inner; }
Function Decorators:
function decorator(func) { return function() { console.log("Before"); func(); console.log("After"); } }
Vorgehen
- Implementieren Sie ihre ausgewählten Konzepte in Java und/oder JavaScript
- Dokumentieren Sie Ihre Implementierung und die Unterschiede zur Python-Version