#java #methods #java.util.scanner #accessor #mutators
#java #методы #java.util.scanner #средство доступа #мутаторы
Вопрос:
В моем учебнике метод мутатора определен как метод, который изменяет объект, с которым он работает.
И он определяет метод доступа как метод, который запрашивает у объекта некоторую информацию, не изменяя ее.
Правильно ли я говорю, что nextInt является методом доступа?
Я считаю, что nextInt не изменяет объект, с которым он работает. Если я создал объект Scanner, вызываемый in , когда я пишу «int a = in.nextInt();» это не изменяет фактический объект Scanner . Вместо этого он используется как своего рода метод получения для присвоения значения a .
Комментарии:
1. Вы правы, он возвращает отсканированный токен как int, см. : docs.oracle.com/javase/7/docs/api/java/util /…
Ответ №1:
На самом деле, из javadoc:
public int nextInt(int radix)
Сканирует следующий токен ввода как int. Этот метод вызовет исключение InputMismatchException, если следующий токен не может быть преобразован в допустимое значение int, как описано ниже. Если преобразование выполнено успешно, сканер проходит мимо соответствующего ввода.
…
Это говорит о том, что состояние сканера изменяется после вызова метода. Таким образом, это создает nextInt
мутатор.
Следовательно, nextInt
является как мутатором, так и аксессуаром.
Ответ №2:
Вы частично правы @Nishant. Метод nextInt() в классе Scanner возвращает следующее значение, которое должно быть введено в качестве ввода с клавиатуры. Но мы всегда используем ‘mutator’ только для геттеров в java, которые возвращают указанное свойство объекта. Поэтому мы не можем назвать nextInt() как мутатор. Чтобы ответить на ваш вопрос, nextInt() не является ни средством доступа, ни мутатором. Надеюсь, я был ясен.