master
3009594 2024-08-28 00:27:46 +02:00
parent 8b37461b71
commit bf27079e24
4 changed files with 93 additions and 1 deletions

View File

@ -0,0 +1,31 @@
package Lambda;
public interface Lambda {
// Lambda-Ausdruck: Kurzform für anonyme Klassenimplementierung
// - Wird verwendet, um Methoden schnell zu überschreiben
// - Syntax: (Parameter) -> { Methodenkörper; }
// - wenn die methode nur einen Parameter hat, können die Klammern weglassen werden
// Funktionale Schnittstelle: Eine Schnittstelle, die genau eine abstrakte Methode enthält
// - Lambdas können nur mit funktionalen Schnittstellen verwendet werden
// - Beispiel: Runnable (enthält nur die Methode run())
// Beispiel für eine funktionale Schnittstelle mit Lambda:
Runnable task = () -> System.out.println("Task läuft");
// Typ-Inferenz: Der Compiler kann oft den Typ der Parameter und Rückgabewerte aus dem Kontext ableiten
// - Beispiel: (int x) -> x * 2 kann auch als x -> x * 2 geschrieben werden
// Mögliche Fehlerquellen:
// - Lambda-Ausdrücke können nur mit Schnittstellen verwendet werden, die genau eine abstrakte Methode haben
// - Typische Probleme sind Mehrdeutigkeit bei der Typ-Inferenz und Schwierigkeiten bei der Fehlersuche in komplexen Lambdas
public void tueetwas(String name);
//public void x(int x);
/*
* in andere Klasse
* x -> x * 2
*/
}

View File

@ -0,0 +1,35 @@
package Lambda;
public class Test {
public static void main(String[] args) {
Lambda normal = new Lambda() {
@Override
public void tueetwas(String name) {
System.out.println(name + " Hallo Welt");
}
};
normal.tueetwas("Obai sagt: ");
/*
* lambd Prinzip verweden:
* - () = Parameter der Methode
* - -> die implementierung der Methode
*/
//ohne klammern
//da nur ein parameter, können klammern weglassen werden
Lambda lambda = name -> System.out.println(name + " Hallo Lambda3213");
lambda.tueetwas("Obai sagt: ");
// mit klammern
Lambda lambda2 = name -> {
System.out.println("Hallo Lambda1");
System.out.println("Hallo Lambda2");
};
lambda2.tueetwas("Obai sagt: ");
}
}

View File

@ -0,0 +1,27 @@
package oop.ExceptionHandling;
public class MyException extends RuntimeException {
// extends RuntimeException ist unchecked, also benötigt man kein throws
// extend Exception int checke, also benötigt man throws in der methode
// z.b public static void num ( int number) throws MyException
MyException(String message){
super(message);
}
public static void num ( int number) {
if (number <= 0) {
MyException ae = new MyException("Die zahl soll großer als 0");
throw ae;
}
}
public static void main(String[] args) {
try {
num(-1);
}catch(MyException ae) {
System.out.println(ae);
ae.printStackTrace();
}
}
}

View File

@ -8,7 +8,6 @@ public class Test {
View view = new View();
Controller c1 = new Controller(obai, omar, view);
c1.setKarten();
c1.setfigurenkarten();
while(true) {
c1.werfeEineKarte(obai);
c1.werfeEineKarte(omar);