Skip to content

Commit af29978

Browse files
committed
Add Lamda Expressions and Anonymous Classes
1 parent 06ec171 commit af29978

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// ? Lambda Expressions
2+
// * Let us express instances of single method interfaces with lambda expressions
3+
// * Lambda expressions are anonymous functions
4+
5+
// ? Anonymous Classes
6+
// * Used to implement a base class without giving it a name.
7+
8+
interfaceDemoAno{
9+
voidmeth1();
10+
11+
voidmeth2();
12+
}
13+
14+
interfaceDemoAno2{
15+
voidmeth1();
16+
}
17+
18+
interfaceDemoAno3{
19+
voidmeth1(inta);
20+
}
21+
22+
classAnonymousClassimplementsDemoAno{
23+
24+
publicvoiddisplay(){
25+
System.out.println("Anonymous Class");
26+
}
27+
28+
@Override
29+
publicvoidmeth1(){
30+
System.out.println("I am meth1");
31+
}
32+
33+
@Override
34+
publicvoidmeth2(){
35+
System.out.println("I am meth2");
36+
}
37+
38+
}
39+
40+
publicclassLambdaExpressions_and_AnonymousClasses{
41+
42+
publicstaticvoidmain(String[] args){
43+
44+
// AnonymousClass ano = new AnonymousClass(); // Normal way
45+
// ano.display();
46+
// ano.meth1();
47+
// ano.meth2();
48+
49+
DemoAnoobj = newDemoAno(){// Anonymous Class
50+
51+
@Override
52+
publicvoidmeth1(){
53+
System.out.println("I am meth1");
54+
}
55+
56+
@Override
57+
publicvoidmeth2(){
58+
System.out.println("I am meth2");
59+
}
60+
};
61+
obj.meth1();
62+
obj.meth2();
63+
64+
// Lambda Expressions
65+
66+
// No parameters
67+
DemoAno2obj2 = () ->{// Only for single method interfaces (functional interfaces)
68+
System.out.println("I am meth1");
69+
};
70+
obj2.meth1();
71+
72+
// With parameters
73+
DemoAno3obj3 = (a) ->{
74+
System.out.println("I am meth1" + a);
75+
};
76+
obj3.meth1(5);
77+
78+
}
79+
}

0 commit comments

Comments
(0)