Объясните пожалуйста, что происходит здесь: Scanner scanner = new Scanner(System.in); a = scanner.nextInt(); Вопросы: 1) Зачем нам нужно вкладывать новый объект типа Сканнер в переменную типа Сканнер? Мы не сможем обращаться к объекту, если он не в переменной? 2) Обращаясь к переменной, мы на самом деле обращаемся к объекту, на который ссылается переменная, и говорим объекту, чтобы он считал данные? 3) Переменная ссылается на объект типа Сканнер, или содержит его в себе? 4) Что значит "тип"? Переменная типа Сканнер, объект типа Сканнер? Если переменная типа int, значит она содержит в себе целые числа. Если String, то переменная содержит в себе адрес объекта, который содержит в себе текст, который мы присвоили строковой переменной. А тут что? Мы делаем переменную типом Сканнер, чтобы разрешить ей сохранять в себе объект типа Сканнер?