Consider a method m of a class A in an object-oriented language like Java or C++.In the body of the method m it is possible to reference the member variables of the object on which the method is invoked. These variables are not defined in the method itself but are bound in the moment in which the method is invoked.Is this the same mechanism used for closures (binding non-local names using the context) or, if not, what are the differences?In other words, would it be possible to view an object with its methods as a collection of closures (the methods) that are closed over some common data (the object's member variables)?
Can methods in an OOP language be considered as some kind of closure?
object oriented;closures
Yes, a method is a closure, from a different perspective.  A closure is a function with state associated with it, and a method is a function with an object (state) associated with it.  The difference is the paradigm.  In object-oriented programming, a lot of emphasis is placed on the object itself, which the methods are part of.  Whereas in functional programming (where the term closure comes from,) the emphasis is on the functions, that happen to have state that they close around.It's quite possible to emulate objects in a functional language, by creating a list containing several closures that all close around the same state data.  (This is how CLOS creates objects, IIRC.)  And object-oriented that implement closures tend to make them work under the hood by having the compiler create special objects that implement the appropriate interface for the closure.So yeah, the two concepts are quite equivalent; the only real difference is the paradigm.