class Calculator { def add(int a, int b) { return a + b } def subtract(int a, int b) { return a - b } def multiply(int a, int b) { return a * b } def divide(int a, int b) { if (b == 0) { println("Error: Division by zero!") return } return a / b } def performOperation(int a, int b, Closure operation) { return operation(a, b) } } // Verwendung der Klasse Calculator def calc = new Calculator() // Grundrechenoperationen println("Addition: ${calc.add(5, 3)}") println("Subtraktion: ${calc.subtract(10, 7)}") println("Multiplikation: ${calc.multiply(4, 6)}") println("Division: ${calc.divide(12, 4)}") // Closures definieren def addClosure = { int a, int b -> a + b } def subtractClosure = { int a, int b -> a - b } def multiplyClosure = { int a, int b -> a * b } def divideClosure = { int a, int b -> if (b == 0) { println("Error: Division by zero!") return } return a / b } // Verwendung von performOperation mit Closures println("Addition mit Closure: ${calc.performOperation(5, 3, addClosure)}") println("Subtraktion mit Closure: ${calc.performOperation(10, 7, subtractClosure)}") println("Multiplikation mit Closure: ${calc.performOperation(4, 6, multiplyClosure)}") println("Division mit Closure: ${calc.performOperation(12, 4, divideClosure)}")