This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
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.)