Core - 1

Каким образом переменные передаются в методы, по значению или по ссылке?


В Java переменные передаются в методы по значению. Это означает, что копия значения переменной передается в метод, а не сама переменная или ссылка на нее. При передаче примитивных типов данных (например, int, float, boolean) в метод, копия значения переменной создается и передается в метод. Любые изменения, внесенные в копию значения внутри метода, не влияют на исходную переменную. При передаче объектов в метод также передается копия значения ссылки на объект. Это означает, что метод будет иметь доступ к тому же объекту, на который ссылается исходная переменная. Однако, если внутри метода изменяются состояние объекта (например, изменяются его поля), то изменения будут видны и после возврата из метода. Пример: public class Main { public static void main(String[] args) { int x = 5; modifyPrimitive(x); System.out.println(x); // Вывод: 5, значение x не изменилось Person person = new Person("John"); modifyObject(person); System.out.println(person.getName()); // Вывод: Alex, состояние объекта person изменилось } public static void modifyPrimitive(int value) { value = 10; // Изменение значения копии переменной } public static void modifyObject(Person person) { person.setName("Alex"); // Изменение состояния объекта } } class Person { private String name; public Person(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } } В примере, изменение значения переменной `x` в методе `modifyPrimitive` не влияет на исходную переменную `x` . Однако, изменение состояния объекта `person` в методе `modifyObject` отражается на исходном объекте, так как метод работает с той же ссылкой на объект.


Копировать ссылку