Junior — Middle
როგორ ხორციელდება პარამეტრების გადაცემა Java მეთოდებში და რა განსხვავებაა მასში?
sobes.tech AI
პასუხი AI-სგან
В Java параметры в методы передаются по значению (pass-by-value). Это означает, что при вызове метода копируется значение аргумента.
- Для примитивных типов (int, boolean, и т.д.) копируется само значение.
- Для объектов копируется значение ссылки на объект, то есть копируется указатель, а не сам объект.
Из-за этого внутри метода можно изменить состояние объекта, на который ссылается параметр, но нельзя изменить саму ссылку, чтобы она указывала на другой объект.
Пример:
void modify(int a, MyObject obj) {
a = 10; // изменение локальной копии
obj.value = 10; // изменение состояния объекта
obj = new MyObject(); // изменение локальной копии ссылки, не влияет на внешний объект
}
Вызов метода не изменит значение переменной a вне метода, но изменит поле value объекта, переданного в obj.