Ответ 1
import java.util.Scanner;
Это импортирует Scanner
(как вы уже знаете).
import java.util.Scanner.*;
Это импортирует любые общедоступные вложенные классы, определенные в Scanner
.
Этот конкретный оператор импорта бесполезен, так как Scanner
не определяет какие-либо вложенные классы (а импорт не импортирует сам Scanner
). Однако это можно использовать с чем-то вроде import java.util.Map.*
, в этом случае Entry
(обычно используется интерфейс, вложенный в Map
при работе с картами) будут импортированы. Я уверен, что есть лучшие примеры, это только тот, который пришел на ум.
Все это указано в JLS §7.5 (в частности, см. §7.5.1: объявления с одним типом импорта).
В ответ на редактирование OP:
Итак, import
java.util.Scanner.*
импортирует общедоступные вложенные классы. Но что, если бы был пакет под названиемScanner
? Что будет делать инструкцияimport java.util.Scanner.*
?
В этом случае будет ошибка компиляции, так как пакет java.util.Scanner
будет сталкиваться с типом java.util.Scanner
.