Commit 65cb6b5b by Patryk Czarnik

Przykłady lambd

parent 6135259d
...@@ -7,4 +7,7 @@ package p25_lambdy; ...@@ -7,4 +7,7 @@ package p25_lambdy;
public interface FunkcjaLiczbowa { public interface FunkcjaLiczbowa {
double oblicz(double x); double oblicz(double x);
default void wypisz(double x) {
System.out.println("f(" + x + ")=" + oblicz(x));
}
} }
...@@ -24,5 +24,31 @@ public class Przyklady { ...@@ -24,5 +24,31 @@ public class Przyklady {
wynik = f3.oblicz(3); wynik = f3.oblicz(3);
System.out.println(wynik); System.out.println(wynik);
// skorzystajmy z metody zdfiniowanej jako default
f3.wypisz(5);
System.out.println("Obiekt f3: " + f3);
if(f3 instanceof FunkcjaLiczbowa) {
System.out.println("Jest instancją");
}
// Wyrażenia lambda mogą być bardziej rozbudowane.
// Jeśli po prawej stronie wpisujemy {blok w klamerkach}
// to wynik zwracamy normalnie za pomocą return
FunkcjaLiczbowa f4 = (double arg) -> {
if(arg < 0) {
System.out.println("f4 dostało liczbę ujemną " + arg);
return (-arg) * 100;
} else {
System.out.println("f4 dostało liczbę dodatnią " + arg);
return arg + 50;
}
};
wynik = f4.oblicz(-7);
System.out.println(wynik);
wynik = f4.oblicz(7);
System.out.println(wynik);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment