Является ли метод nextInt класса Scanner средством доступа или мутатором в Java?
Мой учебник определил метод мутатора как метод, который изменяет объект, с которым он работает.
И он определяет метод доступа как метод, который запрашивает у объекта некоторую информацию, не меняя ее.
Я правильно сказал, что nextInt - это метод доступа?
Я считаю, что nextInt не изменяет объект, с которым он работает. Если я создал вызываемый объект Scanner, когда я пишу "int a = in.nextInt();" он не изменяет фактический объект Scanner. Вместо этого он используется как метод получения, чтобы присвоить значение a.
2 ответа
На самом деле, из Javadoc:
public int nextInt (int radix)
Сканирует следующий токен ввода как int. Этот метод вызывает исключение InputMismatchException, если следующий токен не может быть преобразован в допустимое значение типа int, как описано ниже. Если перевод успешен, сканер продвигается мимо соответствующего ввода.
...
Это говорит о том, что состояние сканера изменяется после вызова метода. Так что это делает nextInt
мутатор.
Следовательно, nextInt
является и мутатором, и акцессором.
Вы частично правы @Nishant. Метод nextInt() в классе Scanner возвращает следующее значение, которое должно быть введено в качестве ввода с клавиатуры. Но мы всегда используем 'мутатор' только для геттеров в java, которые возвращают указанное свойство объекта. Поэтому мы не можем назвать nextInt() как мутатор. Чтобы ответить на ваш вопрос, nextInt() не является ни аксессором, ни мутатором. Надеюсь, мне было ясно.