LU05.A12 - Wissenstransfer zu Java und JavaScript

Transferieren Sie Ihre Kenntnisse der in LU05 erarbeiteten Python-Features in die Programmiersprachen Java und/oder JavaScript.

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.

  1. Wählen Sie mindestens drei der in LU05 behandelten Konzepte aus.
  2. Implementieren Sie diese Konzepte in Java und/oder JavaScript.
  3. Vergleichen Sie die Implementierung mit der Python-Version und dokumentieren Sie etwaige Unterschiede und Ähnlichkeiten.

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() {
        // ...
    }
}

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");
    }
}
  1. Implementieren Sie ihre ausgewählten Konzepte in Java und/oder JavaScript
  2. Dokumentieren Sie Ihre Implementierung und die Unterschiede zur Python-Version

Die Abgabe der Lösung erfolgt als PDF-Abgabe auf Moodle


© Kevin Maurizi

  • modul/m323/learningunits/lu05/aufgaben/transfer.txt
  • Last modified: 2023/11/13 08:56
  • by 127.0.0.1