1) what is the use of....
2) when to use......
3) why to use......
4) How to use..... (plz provide an example)
Here “ ...... „ represents “ -> and :: „


1 2 3 4 5 6 7 8 9 10 11 | public class Button extends Actor { public void act() { if (Greenfoot.mouseClicked( this )) onClick(); } public void onClick() { System.out.println( "Hello World!" ); } } |
1 2 3 | public abstract class Button extends Actor { // ... public abstract void onClick(); |
1 2 3 4 5 6 7 8 9 10 11 12 | public class HelloWorldButton extends Button { @Override public void onClick() { System.out.println( "Hello World!" ); } } public class StopButton extends Button { @Override public void onClick() { Greenfoot.stop(); } } |
1 2 3 | public interface Runnable { void run(); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class Button extends Actor { private Runnable onClick; public Button(Runnable onClick) { this .onClick = onClick; } public void act() { if (Greenfoot.mouseClicked( this )) onClick.run(); } } |
1 2 3 4 5 6 | Button stopButton = new Button( new Runnable() { @Override public void run() { Greenfoot.stop(); } }); |
1 | Button stopButton = new Button(() -> Greenfoot.stop()); |
1 | (a,b,c) -> |
1 2 3 4 | -> { // line of code // another line of code } |
1 | Button stopButton = new Button(Greenfoot::stop); |
1 | Button stopButton = () -> Greenfoot.stop(); |
1 | Button stopButton = () -> Greenfoot.stop(); |
1 2 3 | Runnable stopAction = () -> Greenfoot.stop(); // or Runnable stopAction = Greenfoot::stop; |