Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура однотипных функций 
:(
    Опции темы
DissDoc
Дата 7.10.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

Репутация: нет
Всего: нет



Столкнулся с такой проблемой, как необходимость писать по нескольку одних и тех же функций с разным количеством параметров(((
Что же мне делать? Объясню.
Вот есть две функции
Код

public int func(int a) { }
public int func(int a, int b) { }

Но мне пишет ошибку в тот момент когда я хочу объединить несколько функций в одну, как это делается в php или в C/C++
Код

public int func(int a, int b = -1) { } // ошибочно!

Как можно сделать? Или в Java только несколько функций писать?
PM MAIL WWW   Вверх
Shaggie
Дата 7.10.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



DissDoc, есть такая проблема. Обычно в таких случаях один из методов используется как адаптер:
Код

public int func(int a) {
    return func(a, 1);
}

public int func(int a, int b) {
    // основной код
}



--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
DissDoc
Дата 7.10.2008, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 463
Регистрация: 13.7.2006

Репутация: нет
Всего: нет



Аааа, ну по сути получается тоже самое... Т.е. не стоит мудрить, а проще написать две функции... Очень жаль... Я думал, может я его не допонимаю ;-)
PM MAIL WWW   Вверх
garbuz
Дата 7.10.2008, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 3
Всего: 11



По-моему начиная с пятерки, джава поддерживает переменное количество аргументов в методе... smile 
PM MAIL   Вверх
Shaggie
Дата 8.10.2008, 05:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Завсегдатай
Сообщений: 570
Регистрация: 21.12.2006
Где: outer space

Репутация: 4
Всего: 72



Да, но только если они одного типа, к тому же приходится следить за количеством аргументов и исчезает внятное именование переменных.


--------------------
Цитата(alina3000 @  6.3.2014,  10:47 Найти цитируемый пост)
Сорри что не по теме 
PM MAIL ICQ GTalk Jabber   Вверх
Dims
Дата 10.10.2008, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 4
Всего: 11



В джаве специально нет значений по умолчанию, чтобы заставить программера явно описать свои желания.
PM MAIL   Вверх
mbasil
Дата 13.10.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Действительно параметры должны быть однотипные, только если использовать объекты и интерфейсы эта проблема разрешима:
Код

public class Statistics {
 public float average(int... nums) {
   int sum = 0;
   for ( int x : nums ) {
         sum += x;
    }
  return ((float) sum) / nums.length;
 }
}
. . .
float gradePointAverage = stats.average(4, 3, 4);
float averageAge = stats.average(24, 32, 27, 18);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.