Depending on how the object should be used, determine where to place it.
If a scanner is something that SHOULD be just one instance, then consider making it single and not creating it with a constructor. The following link describes singletones:
http://www.javaworld.com/article/2073352/core-java/simply-singleton.html
Then, instead of having it as a static global one, the Scanner class can have an open static method called "getInstance". Therefore, you do not bind the scanner instance to any specific location, and whenever you need to use it, call Scanner.getInstance from anywhere to access the base instance of the class.
source share