Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача параметров по ссылке / 9 сообщений из 9, страница 1 из 1
09.01.2017, 21:24
    #39381100
hoz
hoz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
Это в Java возможно вообще? Имею ввиду, что необходимо передавать в метод, например, целочисленную переменную. в С++ это делается так:

private static void sum (int a, int b, int& c) {
//
}

Здесь бы в метод передавалась переменная с, и возвращалась бы обратно в вызывающий этот метод sum(). И значение ес-но в родительском методе будет уже изменено. Как это реализовать в Java?
...
Рейтинг: 0 / 0
09.01.2017, 21:30
    #39381104
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
Объекты передаются по ссылке. Нужен любой объект как контейнер значения. Например, массив в один элемент. Важно, конечно, чтобы объект мог менять состояние. Обычно, это свойство называют mutable.
...
Рейтинг: 0 / 0
09.01.2017, 22:03
    #39381117
ПГС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
hoz,
Насколько я начитался теории, то в JAVA переменные всех типов кроме string и объектов передаются по значению. Либо оберните переменную в объект передайте объект в метод, как указано выше, либо если возможно поменяйте на тип STRING.
...
Рейтинг: 0 / 0
09.01.2017, 23:13
    #39381146
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
ПГС,

Отличный совет. И не важно что строка это immutable object.
...
Рейтинг: 0 / 0
10.01.2017, 00:31
    #39381155
hoz
hoz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
Интересно, для чего они такой головняк придумали. Проще же передавать по ссылке всё что угодно.
Кстати, можно тогда проще делать. По идее приводить каждую переменную к соответствующему типу, например, double к Double.
...
Рейтинг: 0 / 0
10.01.2017, 05:44
    #39381188
dimonz80
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
hozИнтересно, для чего они такой головняк придумали. Проще же передавать по ссылке всё что угодно.
И задолбаться отслеживать, где какая функция что нам поменяла.
Это вы себе головняк придумываете на ровном месте. Out параметры в высокоуровневых языках - сомнительная фича.
Не вредно почитать будет


hozКстати, можно тогда проще делать. По идее приводить каждую переменную к соответствующему типу, например, double к Double. А можно троллейбус из буханки хлеба сделать))))
...
Рейтинг: 0 / 0
10.01.2017, 13:47
    #39381455
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
hozПроще же передавать по ссылке всё что угодно.
Ну так объект (в том числе массив из одного элемента) это и есть ссылка.
надо тебе делаешь
Код: java
1.
void func(int[] a)


вот тебе и передача по ссылке.
Собственно за ними ссылками и следят унифицировано (как за объектами), для того, чтоб мог работать GC.
...
Рейтинг: 0 / 0
11.01.2017, 20:24
    #39382696
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
провер эксперимент

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
public class test {
    private static class Int{
        private int i;
        public Int(int i) {
            this.i = i;
        }

        public int getI() {
            return i;
        }

        public void setI(int i) {
            this.i = i;
        }
    }

    public static void main(String[] args) {
        Integer i = 0;
        int k = 0;
        Int j = new Int(0);
        sum(i,j,k);
        System.out.println(String.format("%d,%d,%d",i,j.getI(),k));
    }

    private static void sum(Integer i, Int j, Integer k) {
        i++;
        j.setI(j.getI() + 1);
        k++;
    }
}



результат:

0,1,0
...
Рейтинг: 0 / 0
11.01.2017, 20:49
    #39382704
rema174
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача параметров по ссылке
DNShark, и?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Передача параметров по ссылке / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]