/************************************************************************************** @FunctionalInterface public interface MyInterface { public void message(String name,char symbol); } //********************************* Example 1 **************************************** public class Main { public static void main(String[] args) {
/* lambda expression = feature for Java 8 and above * also known as an anonymous method * a shorter way to write anonymous classes with only one method * * need to use a functional interface or use a pre-defined functional interface * they contain only one abstract method * ex. ActionListener, Runnable, (user-defined) * * A Lambda expression can be used in any place where a functional interface is required * How to use a lambda expression: * (arguments) -> {statement/s} */
String name = "Bro"; char symbol = '!';
MyInterface myInterface = (x,y) -> { System.out.println("Heello World!"); System.out.println("It is a nice day "+x+y); };
} } //********************************* Example 2 **************************************** public class Main { public static void main(String[] args) {
MyFrame myFrame = new MyFrame(); } } //************************************************************************************** import java.awt.event.*; import javax.swing.*; public class MyFrame extends JFrame{ JButton myButton = new JButton("MY BUTTON 1"); JButton myButton2 = new JButton("MY BUTTON 2");
True story. I started learning Java in September 2022 (14 months ago) with BroCode's 12 hour course (only did the first half), and then learned how to solve LeetCode problems with the 4 hour Data Structures video. I was accepted into Amazon Technical Academy, a program for upskilling Amazon employees with no coding experience to Software Engineering roles, in May 2023 (6 months ago). I was a 36 year old making $11 an hour 4 years ago, and now I'm on my way to being a Software Engineer. Bro literally sorted my life out.
@@ChewySmoothI know I’m just some random dude on the internet but I hope you succeed man. Sometimes it’s not a bad idea to take a break to put your life together first. You will prevail, this is not an easy skill to build. Consistency and optimism are key.
I tried several manuals on lambda functions in java, it gets complicated quickly. You, on the other hand, keep it simple, care to explain things like "usually we would code like that", care to provide example with user-defined functions (so it's understandable even for those who haven't used ActionListener before), etc. You've taught me a thing, thank you very much, Bro.
Thanks so much Bro!, Your explanation of Lambdas is much easier to understand than that other youtuber dude with da bald head, that keeps saying: "Meoow!".
Bro, firstly, I am really grateful for the video that helped me to grasp this topic clearly. Furthermore, I found the explanations and sample codes so benefical. The only thing that I am sad about is that I discovered your channel a bit late. Thanks again for the video bro!
Yeah, I looked at another tutorial first and I did not understand anything. And then you came along and explained it in a much better way! Like someone else pointed out, it was really useful that you showed how the anonymous inner class that we are replacing would have looked! That really makes it a lot easier to understand what is going on! =)
Hello, Thank you so much for your effort and for your clear explanations🙏 I have a question: Why is creating automatically the override method when I instantiate the myInterface interface? like in 3:50? Thank you.
So lambdas are when you have 2 classes, one of them with a void method, and the other one with the lambda. The one with the lambda defines what the void method does and calls it?
I am soryy, but i am stuck, when you add actionListener and use lambda expression, you pass "e" as an argument of your method, but this "e" you didn't assigned nowhere, so how does it works?
So, is there any reason to use an anonymous inner class for ActionListener, instead of a lambda expression? It seems it does the same thing but is shorter.
/**************************************************************************************
@FunctionalInterface
public interface MyInterface {
public void message(String name,char symbol);
}
//********************************* Example 1 ****************************************
public class Main {
public static void main(String[] args) {
/* lambda expression = feature for Java 8 and above
* also known as an anonymous method
* a shorter way to write anonymous classes with only one method
*
* need to use a functional interface or use a pre-defined functional interface
* they contain only one abstract method
* ex. ActionListener, Runnable, (user-defined)
*
* A Lambda expression can be used in any place where a functional interface is required
* How to use a lambda expression:
* (arguments) -> {statement/s}
*/
String name = "Bro";
char symbol = '!';
MyInterface myInterface = (x,y) -> {
System.out.println("Heello World!");
System.out.println("It is a nice day "+x+y);
};
MyInterface myInterface2 = (x,y) -> {
System.out.println("Hello "+x+y);
};
myInterface.message(name,symbol);
myInterface2.message(name,symbol);
}
}
//********************************* Example 2 ****************************************
public class Main {
public static void main(String[] args) {
MyFrame myFrame = new MyFrame();
}
}
//**************************************************************************************
import java.awt.event.*;
import javax.swing.*;
public class MyFrame extends JFrame{
JButton myButton = new JButton("MY BUTTON 1");
JButton myButton2 = new JButton("MY BUTTON 2");
MyFrame(){
myButton.setBounds(100, 100, 200, 100);
myButton.addActionListener(
(e) -> System.out.println("This is the first button")
);
myButton2.setBounds(100, 200, 200, 100);
myButton2.addActionListener(
(e) -> System.out.println("This is the second button")
);
this.add(myButton);
this.add(myButton2);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(420, 420);
this.setLayout(null);
this.setVisible(true);
}
}
//**************************************************************************************
Practicing...
First example
public class Main
{
public static void main (String[]args)
{
String name = "Glamorous Coder";
char symbol = '!';
MyInterface myInterface = (x, y)->{
System.out.println ("Welcome back!");
System.out.println ("It's a beautiful day " + x + y);
};
MyInterface myInterface2 = (x, y)->{
System.out.println ("Welcome " + x + y);
};
myInterface2.message (name, symbol);
}
}
*********************
@ FunctionalInterface public interface MyInterface
{
public void message (String name, char symbol);
}
____________________________________
Second Example
public class Main
{
public static void main (String[]args)
{
/*String name = "Glamorous Coder";
char symbol = '!';
MyInterface myInterface = (x, y)->{
System.out.println ("Welcome back!");
System.out.println ("It's a beautiful day " + x + y);
};
MyInterface myInterface2 = (x, y)->{
System.out.println ("Welcome " + x + y);
};
myInterface2.message (name, symbol);
*/
MyFrame myFrame = new MyFrame();
}
}
*******************************
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class MyFrame extends JFrame{
JButton myButton= new JButton("BUTTON 1");
JButton myButton2 = new JButton("BUTTON 2");
MyFrame(){
myButton.setBounds(150,150,150,150);
myButton.addActionListener(
(e) -> System.out.println("Click button 1.")
);
myButton2.setBounds(150,150,150,150);
myButton2.addActionListener(
(e) -> System.out.println("Click button 2.")
);
this.add(myButton);
this.add(myButton2);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(380,380);
this.setLayout(null);
this.setVisible(true);
}
}
bro
Bro, you are going to be the reason that i sort my life out and learn java properly finally. Thank you ❤
hey bro how you going with everything?
True story. I started learning Java in September 2022 (14 months ago) with BroCode's 12 hour course (only did the first half), and then learned how to solve LeetCode problems with the 4 hour Data Structures video.
I was accepted into Amazon Technical Academy, a program for upskilling Amazon employees with no coding experience to Software Engineering roles, in May 2023 (6 months ago).
I was a 36 year old making $11 an hour 4 years ago, and now I'm on my way to being a Software Engineer. Bro literally sorted my life out.
@damonlang1185 not good ☹️
@@ChazWinter well done bro, that's bloody good going!!!! Congrats man!! I wish I could say the same :/
@@ChewySmoothI know I’m just some random dude on the internet but I hope you succeed man. Sometimes it’s not a bad idea to take a break to put your life together first. You will prevail, this is not an easy skill to build. Consistency and optimism are key.
I tried several manuals on lambda functions in java, it gets complicated quickly.
You, on the other hand, keep it simple, care to explain things like "usually we would code like that", care to provide example with user-defined functions (so it's understandable even for those who haven't used ActionListener before), etc.
You've taught me a thing, thank you very much, Bro.
Best java series in the whole youtube.. thanku for providing this course for free.
A lot easier to understand than most (if not all) of other lambda videos!!! As always, you rock!!!!!
I love this, so much more elegant for actionListeners than making a long if-else statement or switch
Finally someone who can explain Lambda without causing a headache. Thank u Bro!
Thanks so much Bro!, Your explanation of Lambdas is much easier to understand than that other youtuber dude with da bald head, that keeps saying: "Meoow!".
Bro, firstly, I am really grateful for the video that helped me to grasp this topic clearly. Furthermore, I found the explanations and sample codes so benefical. The only thing that I am sad about is that I discovered your channel a bit late. Thanks again for the video bro!
This was really helpful for me. I am learning lambda expressions and you thoroughly covered a wide section on its uses. Thank you,
The button initially said "MY BUTT..."
Thank You Bro, I learned so much in the last 80 Videos !
Yeah, I looked at another tutorial first and I did not understand anything.
And then you came along and explained it in a much better way!
Like someone else pointed out, it was really useful that you showed how the anonymous inner class that we are replacing would have looked!
That really makes it a lot easier to understand what is going on! =)
Thanks a lot for this tutorial, I really like your style comparing to other RUclipsrs.
I can see how this can be useful. Great stuff Bro!
OK finally an explanation of Lambda expressions that I can understand! Thank You Bro!
You gained a new subscriber! Ur explanations are exceptional thank you
I like all yours video about java(my listening isn't good) but I can understand all you say ...thank for all ...a hug from Rep Dom
This is a very creative comment to help keep this channel running.
The thing i most like in bro is that he always goes straight to the point
Hey! Thank you for the simple way of explaining complicated concepts. Well done!
Hello, Thank you so much for your effort and for your clear explanations🙏 I have a question: Why is creating automatically the override method when I instantiate the myInterface interface? like in 3:50? Thank you.
Thank you, nice explanation with clear examples.
Great vid, bro!
I took RUclips premium just so I could watch your video without any disturbances.
Thank you! This is easy enough for me to undestand as a beginner. Other tutorials go to fast or are too advanced for my level.
thanks Bro! I finally understand what is the Lambda-expression!
Sir, I think we don’t need to declare public if we define method in interface. Because it is always public right?
you are right. I do as a habit and I forget that you don't need to
It's rught buddy.. there is no need to follow everything everytime
Thanks for leaving your code in the comments, that with your video are going to make things so much easier 👌
Fantastic video. Thanks for the explanation
helpful as always!
Great Java tutorial, thank you!
12:52
Now that's too funny :D
Very clear understanding!good .
This was very helpful! Thanks!!
The best teacher bro! 😎
my bro😍
So lambdas are when you have 2 classes, one of them with a void method, and the other one with the lambda. The one with the lambda defines what the void method does and calls it?
Hi Bro, You have mentioned that the Functional Interfaces have only one abstract method. How many different kinds of interfaces do we have in Java?
82th. Thank you, ma Bro Sensei
Thank you, that's a very useful video!
Bro. you just helped me cut my code in half.
Thank you! Very helpful!
Your voice force me coding.
thank you , this video helped me alot !
I am soryy, but i am stuck, when you add actionListener and use lambda expression, you pass "e" as an argument of your method, but this "e" you didn't assigned nowhere, so how does it works?
So i meant, this argument doesn't have type, how does compiler works?
"e" here acts like "this", so whenever an event ( "click") happened it will execute the code given
In the second example how can you just introduce myFrame and never use it? :(
(in public class Main)
What is your intro song man i need that tune as a ringtone.
Thank you.谢谢。
Another Good one Bro
excellent
you said work with a fonctional Interface , doesn't it work with an abstract class with one absract method ???
I tried it, you'll receive an error that states:
'The target type of this expression must be a functional interface'
*bowing in admiration*
nice tuto, thanks
Good!
Good bro!
So, is there any reason to use an anonymous inner class for ActionListener, instead of a lambda expression? It seems it does the same thing but is shorter.
yes if u wanna use an anonymous inner class for ActionListener just use Lambda exp
You can, ActionListener uses a single abstract method, actionPerformed()
Thanks Bro.
amazing.
Thank you a lot
I learned a lot.
Nice, bro!
Thank you Bro!
thanks, bro
Please Work With JAVAFX too
tnx
working on it
@@BroCodez thanks
can't wait to watch them
thanks bro
Thank you!
Bro, I'm your fellow bro.
Thanks!
I learned something
Thanks 🙏
Ly bro 10
Basically less boilerplates
Brooo super
(Lambda)
Bro rocks
Thank again Bro
Java is turning into something else these days
Thanks
Tnx!
Seems so pointless, like why even bother doing it this way.
to help us
We don’t write multi lines in lambda
lambdas can have more than one line
I like my coffee like I like my women.
Not yelling at me.
love you
👍
GOAT.
#brocodealltheway!
Man why are you doing this for free?
Gold, f*kin gold
Lambalicious
comment for stats
Hi :)
Comment.
420by420
.
777th like! Cookie, please :D
Thank you!
Thanks