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

Другие вопросы по тегам