
Другие языки программирования и технологии
Объясните зачем методу нужны аргументы?
Объясните понять не могу. Зачем передавать какие-то аргументы методу, при его вызове? Я имею виду те, которые в круглых скобках. Для чего это используют? Можно небольшой пример на реальной ситуации. Чем эта запись


есть Класс1
в нем есть метод, на вход или регистрацию пользователя - signInUp
есть Класс2 - поток
объявлены переменные Socket, PrintWriter
ожидает нового пользователя
вызывает метод signInUp
и вот, Класс2 - принимает пользователя
signInUp - что пользователь нажал, на кнопку регистрации или входа
так как в Класс2 мы уже объявили значение Сокета клиента и его PrintWriter (когда пользователь подключился), то мы передаем методу signInUp эти аргументы, а там уже ожидается ввод пользователя от Сокета с помощью PrintWriter'a, объявленного в N-ном потоке
--
а так, как метод мог бы понять, какой сокет использовать и куда отправить ответ без аргументов?
лишним присваиванием только, но это лишние действия
в нем есть метод, на вход или регистрацию пользователя - signInUp
есть Класс2 - поток
объявлены переменные Socket, PrintWriter
ожидает нового пользователя
вызывает метод signInUp
и вот, Класс2 - принимает пользователя
signInUp - что пользователь нажал, на кнопку регистрации или входа
так как в Класс2 мы уже объявили значение Сокета клиента и его PrintWriter (когда пользователь подключился), то мы передаем методу signInUp эти аргументы, а там уже ожидается ввод пользователя от Сокета с помощью PrintWriter'a, объявленного в N-ном потоке
--
а так, как метод мог бы понять, какой сокет использовать и куда отправить ответ без аргументов?
лишним присваиванием только, но это лишние действия
Гани Сарсенбаев
Можно выставить какие-то переменные класса перед вызовом.
Pavel Kons
То есть если бы метод signInUp не имел аргументов, среда бы выдала ошибку?
Это не принципы ООП, это принципы функционального программирования. Чистая функция не делает ничего с тем, что ей не передано параметрами, и это сильно облегчает поиск ошибок в ситуации
date = "1.1.2016";//дата
big_function();//большая функция, строк на 20
one_more_big_function();//еще одна, после редактирования другим программистом где-то внутри изменяющая date
even_bigger_function();//и еще одна
print(date);//выводим... новую дату
код будет нормально работать, пока кто-то не полезет менять date внутри функции. А потом начинается боль - как найти, где именно date изменен? А теперь - фунциями без побочных эффектов:
big_function(date);//большая функция, использующая date
date = one_more_big_function(date);//еще одна
even_bigger_function();//и еще одна, но date она не использует
print(date);//выводим новую дату
Применительно к ООП речь идет о переменных других классов, потому что в метод класса обязательно передается ссылка на свой объект this.
date = "1.1.2016";//дата
big_function();//большая функция, строк на 20
one_more_big_function();//еще одна, после редактирования другим программистом где-то внутри изменяющая date
even_bigger_function();//и еще одна
print(date);//выводим... новую дату
код будет нормально работать, пока кто-то не полезет менять date внутри функции. А потом начинается боль - как найти, где именно date изменен? А теперь - фунциями без побочных эффектов:
big_function(date);//большая функция, использующая date
date = one_more_big_function(date);//еще одна
even_bigger_function();//и еще одна, но date она не использует
print(date);//выводим новую дату
Применительно к ООП речь идет о переменных других классов, потому что в метод класса обязательно передается ссылка на свой объект this.
Похожие вопросы
- объясните, пожалуйста, метод вставок (сортировка) . желательно на прмере.
- Объясните пожалуйста метод решения
- Программисты объясните этот феномен... Нужны ваши мнения!
- Объясните пожалуйста алгоритм упрощенного метода ньютона
- Объясните плиз правило по численным методам
- Объясните новичку на простом языке что делает метод Convert.ToInt32 на C#
- Виртуальные методы и функции
- (C++) Нужна помощь в создании метода "пузырька".
- Для аргумента x, изменяющегося от –0.6 с шагом 0.05 вычислить 20 значений функций.
- Зачем нужна статистика и мат. методы прогнозирования