Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 04.08.2013, 14:56   #1
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию Передача простых типов по ссылке

В литературе прочитал что объекты классов передаются методам, в качестве параметра, по ссылке. И что на простые типы, int например ссылки не создаются.
А вот мне как раз надо простой тип int передать методу по ссылке. Чтобы внутри метода можно было изменить значение. Как это можно сделать?

И еще вопрос я правильно думаю что все массивы, даже простых типов передаются по ссылке?

Немного я запутался в этом вопросе. В с++ при объявлении функции сразу видно что она принимает значение, ссылку или указатель.

Последний раз редактировалось SAMOUCHKA; 04.08.2013 в 15:02.
SAMOUCHKA вне форума   Ответить с цитированием
Старый 04.08.2013, 20:05   #2
BleStaR
Форумчанин
 
Регистрация: 25.09.2009
Сообщений: 234
По умолчанию

Цитата:
А вот мне как раз надо простой тип int передать методу по ссылке.
Используй объект Integer.
Цитата:
И еще вопрос я правильно думаю что все массивы, даже простых типов передаются по ссылке?
Да
BleStaR вне форума   Ответить с цитированием
Старый 20.08.2013, 00:03   #3
Carbon
JAVA BEAN
Участник клуба
 
Аватар для Carbon
 
Регистрация: 22.04.2007
Сообщений: 1,331
По умолчанию

Цитата:
Сообщение от BleStaR Посмотреть сообщение
Используй объект Integer.
И как это поможет?
Carbon вне форума   Ответить с цитированием
Старый 03.10.2013, 20:01   #4
SsIDit
 
Регистрация: 08.05.2010
Сообщений: 5
Восклицание

По сути класс Integer - это просто оболочка, в которой и лежит наше значение int. И по идее использование объекта Integer должно помочь. Однако насколько я понял, Java в самом коде неявно преобразует сам класс в примитивный тип (пруф)

Как по мне, хороший выход - сделай свою оболочку.
Код:
public class Test1 {

class WrapInt {
	public int k;

}

	public static void set(WrapInt n) {
		n.k = 10;
	}

	public static void main(String[] args) {
		WrapInt wr = new WrapInt();
		wr.k = 5;
		System.out.println(wr.k);
		set(wr);
		System.out.println(wr.k);
	}
}
Цитата:
Вывод:
5
10
SsIDit вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача id по ссылке PHP kop PHP 2 11.07.2012 23:40
Передача параметра в ссылке Pingvinenok_Lolo PHP 5 26.02.2012 14:25
Передача аргументов в функции по ссылке skanku Общие вопросы C/C++ 2 11.01.2012 21:24
Передача массива по ссылке xxxsas PHP 4 20.06.2011 14:52
передача параметра по ссылке veter_s_morya PHP 7 18.10.2009 16:43


05:10.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.