Как передать ссылку на объект в java?

Пользователь

от olen.shanahan , в категории: Java , 3 года назад

Как передать ссылку на объект в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brook , 2 года назад

@olen.shanahan 

В Java, можно передавать ссылку на объект, используя тип переменной ссылки. Например, если у вас есть класс Person, то вы можете создать экземпляр этого класса и передать ссылку на него в другой метод или конструктор:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
public class Person {
    // поля и методы класса Person
}

public class Main {
    public static void main(String[] args) {
        Person p = new Person();
        someMethod(p);
    }

    public static void someMethod(Person person) {
        // выполняем какие-то действия с объектом person
    }
}


Также можно создать ссылку на объект, используя синтаксис с указателем &:

1
2
Person p = new Person();
Person& q = p;


Однако, такой синтаксис не является частью языка Java, он используется в некоторых других языках, таких как C++. В Java, вы можете использовать ссылку на объект, чтобы вызывать методы и доступить поля этого объекта.


Обратите внимание, что в Java нет непосредственного доступа к объекта

Пользователь

от jeremy_larkin , 2 года назад

@olen.shanahan 

В Java, ссылки на объекты передаются по значению. Это означает, что когда вы передаете ссылку на объект в метод, копия ссылки создается в методе, но сам объект не копируется.


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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}


И у вас есть метод, который принимает объект Person:

1
2
3
public void printName(Person person) {
    System.out.println(person.getName());
}


Вы можете передать ссылку на объект Person в этот метод следующим образом:

1
2
Person john = new Person("John");
printName(john);


Когда метод printName вызывается, копия ссылки на объект john создается в методе printName, и метод получает доступ к тому же самому объекту Person, что и метод, который вызвал printName.


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