Это зависит от того, что именно вы имеете в виду путем ввода, значит, специально ли переменная, которая появляется в качестве аргумента на месте вызова, например, x
в:
Object x = ...;
someMethod(x);
или вы говорите о реальном объекте что вызываемая функция будет видеть, например, фактический экземпляр объекта в:
someMethod(new Object());
значение переменных (то есть, какой объект они ссылаются) не изменится, но вы можете сделать что-то в объекты tha вы получите. Например,
void appendX(StringBuilder sb) {
sb.append('x');
}
void foo() {
StringBuilder builder = ...
appendX(builder);
builder.toString(); // will contain 'x' because you worked with the object that
// is the value of the variable `builder`. When appendX was
// was invoked, the value of its variable `sb` was the same
// object that is the value of foo's `builder`. Without
// changing what value the variable `builder` refers to, we
// did "change" the object (i.e., we appended 'x').
}
Однако обновление ссылки в методе не изменяет никаких ссылок за пределами метода. Изнутри метода вы не можете, назначив один из параметров метода, изменить объект, на который ссылается переменная, не относящаяся к методу. Например:
void setNull(StringBuilder sb) {
sb = null;
}
void foo() {
StringBuilder builder = ...
appendX(builder);
builder == null; // false, because the value of the variable `builder` is still the
// same object that it was before. Setting variable `sb` in setNull
// to null doesn't affect the variable `builder`. The variables are
// just a name so that you can refer to an value. The only way to
// what value a variable refers to is with an assignment.
}
Изменяя локальную переменную ссылку не изменит тот, который вы передаёте в Изменение объекта с помощью доступа к нему через ссылку изменит. объект. –
Что именно вы подразумеваете под вход? –
Введите как переменные, которые вы передадите в функцию. Извините, если мой словарь свободен, я над этим работаю! –