Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2015, 11:50   #1
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
Вопрос как из метода вернуть несколько значений

Меня интересует в яве возврат методом нескольких значений переменных. В других языках, таких как С++, PHP, это можно сделать по ссылке. Одно значение я могу вернуть через return a; , но что делать если метод должен вернуть измененную одну переменную int, другую string, третью float.
Подскажите новичку, нужны простые наглядные примеры.
oldsnowman вне форума Ответить с цитированием
Старый 10.08.2015, 12:10   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Точно должен? Может лучше таки разделить на несколько методов?

А так ООП же. Сделайте класс и передавайте/возвращайте объект.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.08.2015, 17:33   #3
oldsnowman
Участник клуба
 
Аватар для oldsnowman
 
Регистрация: 20.02.2015
Сообщений: 1,226
По умолчанию

приведите пример, это лишит меня лишних сомнений, а то могу не туда поскакать. Только нужен простой пример, без бородатого кода.
покажите на java вот этот пример на php
PHP код:
<?php
function af (&$var, &$var2)
{
     
$var++;
     
$var2="Белый";
}

$a=2;
$b="Черный";
af($a$b); // $a здесь равно 3 $b равно белый
echo $a." ".$b
?>
Хочу увидеть как это реализуется на java.
oldsnowman вне форума Ответить с цитированием
Старый 10.08.2015, 18:16   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык чего приводить? Говорю ж, объекты используйте, они по ссылке передаются.
Изучайте ООП.

Код:
public class MyClass {
    private Integer fieldOne;

    private String fieldTwo;

    public Integer getFieldOne() {
        return fieldOne;
    }

    public void setFieldOne(Integer fieldOne) {
        this.fieldOne = fieldOne;
    }

    public String getFieldTwo() {
        return fieldTwo;
    }

    public void setFieldTwo(String fieldTwo) {
        this.fieldTwo = fieldTwo;
    }
}

...

void setProperties(MyClass obj) {
    obj.setFieldOne(42);
    obj.setFieldTwo("forty-two");
}
Ну естественно в данном случае метод можно поместить и в сам этот класс, тогда ничего и передавать не придется.

По желанию геттеры/сеттеры в данном примере можно выкинуть (раз в них нет ничего, кроме возвращения/смены значения) и сделать сами поля public, тогда будет просто
Код:
obj.fieldOne = 42;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 10.08.2015 в 18:24.
Alex11223 вне форума Ответить с цитированием
Старый 11.08.2015, 00:11   #5
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,329
По умолчанию

Инстансом класса. А можно пример поконкретней? Вот Вы, наверное, решали какую-то задачу и вот посчитали, что наилучшее решение - вернуть n значений сразу.
У меня в этом потребность возникла лишь однажды и то по старой привычке после сей.
Carbon вне форума Ответить с цитированием
Старый 28.08.2015, 03:42   #6
tolikprankster
Пользователь
 
Регистрация: 09.02.2013
Сообщений: 60
По умолчанию

Можно запихнуть в массив или в коллекцию и вернуть коллекцию, по хард коду конечно, но вариант:

Код:
class Example{
	public static ArrayList getArrayList()
	{
		List list = new ArrayList();
		list.add(5);
		list.add("String value");
		list.add(true);
		list.add(new Object());
		list.add(23.5);
		return (ArrayList) list;
	}

	public static void main(String args[])
	{
		List myList = getArrayList();
		for(Object o : myList)
			System.out.println("Item: " + o.toString());
	}
}
Результат работы:
Item: 5
Item: String value
Item: true
Item: java.lang.Object@12b3d53
Item: 23.5

Ну или как написали выше создать класс с полями необходимых типов
tolikprankster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сравнить несколько значений...? zaki SQL, базы данных 3 12.12.2014 22:54
как вернуть из функции 2 и более значений КРИЖ Visual C++ 1 10.09.2013 20:05
FB SQL - как написать where несколько значений IN SP ?? DeveloPerchik БД в Delphi 1 16.04.2012 14:34
Как в MsgBox, выводить несколько значений valerij Microsoft Office Excel 12 22.03.2010 23:17
Вернуть несколько значений из MDI формы которая грузится из DLL ? spamer Общие вопросы Delphi 8 06.11.2009 00:14