Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83

Что возвращает эта функция?

17.02.2013, 05:20. Показов 983. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Объясните, пожалуйста.. вот код:

Java
1
2
3
4
5
6
7
8
9
    private Product inputProduct() {
        System.out.println("  Input product ->");
        String title = keyboard("    Name");
 
        Product product = new Product();
        product.setTitle(title);
 
        return product;
    }
кусок кода из класса Product:
Java
1
2
3
4
5
           private String title;
 
    public void setTitle(String title) {
        this.title = title;
    }
Не могу понять что возвращает переменная product "return product;".
Зачем там вообще что-то возвращать, если требуется просто считать набранный текст и занести его в переменную title класса Product?? Можно было бы void указать у функции..
Скажите что я не понимаю..
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2013, 05:20
Ответы с готовыми решениями:

Что значит эта строчка?
System.out.printf(Locale.US ,"%.8f",((double)((l/k) + 1)*h*1.0)); где l-расстояние от А до В k-отрезок пути h-время,за которое...

Что значит эта строчка?
public void actionPerformed(ActionEvent ae) { try { ExportButActionPerformed(ae); ...

Что возвращает GetHashCode
Привет всем, на лекции спросили, что возвращает не переопределенный для объекта метод GetHashCode. Ответа я правильного не смог дать,...

4
30 / 30 / 13
Регистрация: 07.08.2012
Сообщений: 86
17.02.2013, 07:44
В ООП практикуется подход, что либо метод изменяет вызывающий объект, либо возвращает. Банально здесь вы создаете новый и возвращает. Если void, то и сигнатура метода сменилась бы на
Java
1
void inputProduct(Product product)
к примеру.
1
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,205
Записей в блоге: 24
17.02.2013, 07:55
Это зависит от того, как задача ставится.
Если задача считать строку и занести её в title новосозданного объекта Product, то можно смело писать так, как Вы сказали. Но учтите, что новосозданный объект не будет доступным после завершения процедуры, потому что единственная точка доступа к нему — локальная переменная product, которая будет недоступна после завершения функции. Тогда GC удалит этот объект при первом вызове.
Если задача стоит также иметь последующий доступ к объекту, то этот новосозданный объект следует вывести «наружу» функции. Для этого нужно воспользоваться либо выводом через return, либо выводом в глобальную область. Если ещё способ, по-хитрее: вывести в «левый» объект (как у нас, в народе, говорят «третье лицо», понимая, что первые два имеют прямое отношение к делу, а третий — нет; в примере ниже два лица inputProduct и readAndChange будут обмениваться объектом, а третье лицо listener будет играть роль посредника)
Пример:
return
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
class Main {
    private Product inputProduct() {
        System.out.println("  Input product ->");
        String title = keyboard("    Name");
        Product product = new Product();
        product.setTitle(title);
        return product;
    }
    private Product readAndChange() {
        Product p = inputProduct();
        /* ... */
    }
}
global
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Main {
    private Product p;
    private void inputProduct() {
        System.out.println("  Input product ->");
        String title = keyboard("    Name");
        Product product = new Product();
        product.setTitle(title);
        p = product;
    }
    private Product readAndChange() {
        inputProduct();
        Product p = this.p;
        /* ... */
    }
}
listener
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Main {
    private static class ProductListener {
        public Product p;
        public void give(Product p) { this.p=p; }
        public Product take() { return this.p; }
    }
    ProductListener listener = new ProductListener();
    private void inputProduct(ProductListener l) {
        System.out.println("  Input product ->");
        String title = keyboard("    Name");
        Product product = new Product();
        product.setTitle(title);
        l.give(product);
    }
    private Product readAndChange() {
        inputProduct(this.listener);
        Product p = listener.take();
        /* ... */
    }
}

P.S. unit7 предложил ещё вариант, когда объект Product не создаётся, но меняется.
1
0 / 0 / 1
Регистрация: 19.02.2012
Сообщений: 83
17.02.2013, 14:23  [ТС]
Спасибо. Кажется всё понял. Буду писать следующую программу - дойду до этого момента - если не пойму, напишу ещё.)
0
17.02.2013, 17:19

Не по теме:

лучше бы книжку открыли и почитали

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2013, 17:19
Помогаю со студенческими работами здесь

Что же все таки возвращает codePointAt?
Здравствуйте! Не могу понять, почему именно такое значение возвращает функция codePointAt. Знал раньше, что есть функция codePointAt (int...

Что значит эта надпись? NetBeans
Вызов Object.notify вне синхронизированного контекста. Если нужно - выложу часть кода.

Что означает эта строка ?
Добрый день, столкнулся с java кодом, нужно его перевести на c# , но не до конца понимаю значение строки : static { code =...

Подскажите что делает эта часть кода
привет! Не могу разобраться что делает этот кусок кода: sb.append(Integer.toString((byteData & 0xff) + 0x100,...

Подскажите начинающему, что означает эта часть кода
Здравствуйте. Учу джаву потихоньку. Делаю задание, и не пойму в этой части кода, что означает int age, и зачем мы присваиваем ей в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru