That's not the "constructor" for the method: it's the "declaration" for the method. Methods don't have constructors!
The answer to your question is that your Scanner object is the Java equivalent of the C++ istream. An istream is an object that's all set up and opened to read data from, just as a Scanner is. The "&" means you're passing a reference; by default, without that "&", in C++ a copy of the istream object itself would be passed (unlike in Java, where it's always a copy of a reference that is passed.)