Является ли метод nextInt класса Scanner средством доступа или мутатором в Java?

#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() не является ни средством доступа, ни мутатором. Надеюсь, я был ясен.