This code uses method reference to an instance method of a particular object:
public class Main {
    public static void main(String[] args) {
        One one=new One();
        // F f = ()->{one.bar();};   //previous wrong syntax
        F f = one::bar;              //4
        f.foo();
    }
}
class One{void bar(){}}
interface F{void foo();}
I know it works. But I'm not being able to understand why and how.
What I can't understand is how is it possible that F.foo() method is using a reference to an object that is not an argument to the method itself (signature is not void foo(One one)).  
At line 4 I am
- creating an instance of a class that implements Finterface
- implementing the method by using the reference oneto invokebar()method
But how can foo() have a scope on one reference? Am I being wrong trying to translate this solution to a "traditional, explicit implementation"? If not, what would it be the "explicit counterpart"?
 
    