Commit 7cda91dc by Patryk Czarnik

lambdy - początek

parent 9dfd79d3
package p17_lambdy;
/* Interfejs funkcyjny to taki, który ma jedną metodę anstrakcyjną
(czyli pozbawioną implementacji).
Wyrażenia lambda, które są zgodne z nagłówkiem tej metody,
mogą służyć do tworzenia obiektów zgodnych z tym interfejsem.
*/
public interface FunkcjaLiczbowa {
double oblicz(double arg);
String nazwa();
}
......@@ -5,6 +5,21 @@ public class Program {
ProstaFunkcjaKwadratowa kw1 = new ProstaFunkcjaKwadratowa();
FunkcjaLiczbowa kw2 = new ProstaFunkcjaKwadratowa();
System.out.println(kw1.oblicz(5));
System.out.println(kw2.oblicz(5));
System.out.println(kw2.oblicz(6));
System.out.println();
FunkcjaLiczbowa f3 = arg -> arg*arg;
System.out.println(f3.oblicz(7));
System.out.println("Obiekt f3: " + f3);
System.out.println("Klasa obiektu: " + f3.getClass().getName());
if(f3 instanceof FunkcjaLiczbowa) {
System.out.println("Tak, to jest ten typ.");
}
System.out.println();
FunkcjaLiczbowa f4 = x -> 10*x;
FunkcjaLiczbowa f5 = Math::sqrt;
System.out.println(f4.oblicz(9));
System.out.println(f5.oblicz(16));
}
}
......@@ -8,7 +8,6 @@ public class ProstaFunkcjaKwadratowa implements FunkcjaLiczbowa {
return arg*arg;
}
@Override
public String nazwa() {
return "kwadrat";
}
......
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