Можно ли в параметр функции передать ссылку на объект?

Да, в языке Java можно передать ссылку на объект в качестве параметра функции. В Java все объекты являются ссылками. Когда вы создаете объект, фактически вы создаете только ссылку на этот объект в памяти JVM. Это отличается от примитивных типов данных, таких как int или boolean, которые хранятся прямо в переменной.

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

Например, у нас есть класс Person:

public 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;
  }
}

И у нас есть функция changeName, которая принимает ссылку на объект Person и изменяет его имя:

public class Main {
  public static void changeName(Person person, String newName) {
    person.setName(newName);
  }

  public static void main(String[] args) {
    Person person = new Person("John");
    System.out.println(person.getName()); // Выводит "John"

    changeName(person, "Alice");
    System.out.println(person.getName()); // Выводит "Alice"
  }
}

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

Таким образом, в Java можно передавать ссылки на объекты в параметрах функций, что позволяет нам модифицировать и изменять состояние объекта, на который указывает ссылка, внутри функции.