Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / 1001 раз про ссылки / 5 сообщений из 5, страница 1 из 1
18.09.2014, 13:15
    #38750321
Саабразим Аль-каши Бухани
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1001 раз про ссылки
Я не понимаю, как передаются в java значения в метод.
Допустим
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
public class Foo{}

public class Main {

	static void foo(Foo i) {
		
	}

	public static void main(String[] args) {
		Foo m = new Foo();
                foo(m);
	}
}


Что приходит в foo()? Ссылка или копия ссылки? Если ссылка, то почему нельзя в foo() написать i = new Foo() и тем изменить m из main()? Если копия - то как это "пощупать" - увидеть разницу адресов или хоть чего-нибудь? И вообще можно ли под ссылкой понимать аналог Foo& из C++?
...
Рейтинг: 0 / 0
18.09.2014, 13:19
    #38750331
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1001 раз про ссылки
Саабразим Аль-каши Бухани,

new Foo() - создаёт новый объект.
Foo i - переменная, ссылающаяся на объект
Foo m - другая переменная ссылающаяся на объект
i = new Foo() - создаёт второй объект и делат i ссылкой на него.
переменная i и переменная m - две разных переменных, поэтому изменение одной не приводит к изменению другой.
поэтому переменная m как ссылалась на первый объект там и будет на него ссылаться.
...
Рейтинг: 0 / 0
18.09.2014, 13:36
    #38750374
chabapok
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1001 раз про ссылки
если вам хочется аналоии с плюсами, можете считать, что передаются указатели на обьект.
...
Рейтинг: 0 / 0
18.09.2014, 13:53
    #38750399
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1001 раз про ссылки
Саабразим Аль-каши БуханиЧто приходит в foo()? Ссылка или копия ссылки?

В твоих терминах- копия.

Саабразим Аль-каши БуханиИ вообще можно ли под ссылкой понимать аналог Foo& из C++?

Нет, в java невозможно изменить значение переданной переменной. Никак. Это типа фича.
...
Рейтинг: 0 / 0
18.09.2014, 16:29
    #38750679
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1001 раз про ссылки
Зато можно изменить состояние объекта-аргумента внутри метода.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / 1001 раз про ссылки / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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